import nltk
def preprocess_text(original_text):
specials = {"computer vision": "computer_vision",
"fake news": "fake_news"}
out = original_text.lower()
for k in specials:
out = out.replace(k, specials[k])
return out
def main():
txt = preprocess_text("Computer vision has nothing to do wiht fake news")
tokens = nltk.word_tokenize(txt)
nltk.FreqDist(tokens).tabulate()
if __name__ == "__main__":
main()
你需要的是一个名为“bigram”的数据集,它将给出给定语言中给定的一对词在一起出现的频率(即频率)。频率越高,对就越有可能是一个术语。在
例如,请查看COCA中可搜索和可下载的语料库。谷歌也有类似的数据集。有3克和4克,一般称为n-grams。在
在COCA数据集中,计算机科学的频率等级为1604;假新闻有828个,苹果汽车有2个。所以你需要决定阈值频率来接受一个词对。在
有意思的问题是,假设还没有一个你可以利用的有意义的复合词词典。我也希望“计算机科学”成为一个流行的话题。在
让我们采取这样一种方法,即我们对英语中的复合词一无所知,即“停止符号”与“停止”和“符号”是否有着同样重要的区别 “does better”来自“does”和“better”
分解后,您需要构建一个流程:
这是准确的描述吗? 如果是这样,我想你要的工具应该在(4)或(5)中。对于4),首先考虑Python的Orange库中的关联规则。你也可以使用scikit-learn的TF-IDF。对于5),您可以将4)中的输出公开为带计数的字符串列表、集合或字典。在
您可以定义一组特殊组合,并在标记化之前预处理短语:
不过,最好有一个专门的标记化。在
相关问题 更多 >
编程相关推荐