我想计算频率,但我想结合名词和动词的单数和复数形式及其副词形式。请原谅这句拙劣的句子。例如:“那个咄咄逼人的人从那边的房子旁边走过,这是许多房子中的一个
标记化和计数频率
import nltk
from nltk.tokenize import RegexpTokenizer
test = "That aggressive person walk by the house over there, one of many houses aggressively"
tokenizer = RegexpTokenizer(r'\w+')
tokens = tokenizer.tokenize(test)
fdist = nltk.FreqDist(tokens)
common=fdist.most_common(100)
输出:
[('houses', 1), ('aggressively', 1), ('by', 1), ('That', 1), ('house', 1), ('over', 1), ('there', 1), ('walk', 1), ('person', 1), ('many', 1), ('of', 1), ('aggressive', 1), ('one', 1), ('the', 1)]
我希望house
和houses
被计算为('house\houses', 2)
,aggressive
和{('aggressive\aggressively',2)
。这可能吗?如果不是的话,我该如何让它看起来像那样呢?在
你需要柠檬化。在
NLTK包括一个基于WordNet的lemmatizer:
这将导致:
^{pr2}$然而,侵略性的和侵略性的不会被WordNet词法化器合并。 还有其他狐猴,它们可能会做你想做的。 不过,首先,您可能需要考虑使用词干:
这给了你:
伯爵现在看起来很好! 然而,你可能会因为词干不一定看起来像真词而恼火。。。在
相关问题 更多 >
编程相关推荐