我用棕色语料库”布朗。文字()”给了我116192个单词的列表。在
现在我想找出“have”这个词的任何出现,所以每当在语料库中出现“has”、“had”、“have not”等等。我想做点什么(可以把它们推到数组中,可以是一个计数器,也可以是其他的东西。在
编辑:请注意,这个问题是关于查找匹配单词的。如果我搜索“have”,我需要一种方法将其与“have not”或“had”匹配,因此.count()无法解决这个问题,因为它无法帮助匹配任何内容。在
如果词干分析/词缀化可以工作,我将使用示例代码:
def findWordFamily(findWord):
wordFamily = []
lmtzr = WordNetLemmatizer()
findWord = lmtzr.lemmatize(findWord)
for word in brown.words():
lemma = lmtzr.lemmatize(word)
if lemma == findWord:
wordFamily.append(word)
return wordFamily
print(findWordFamily("have"))
# ["have", "have", "had", "having","haven't", "having"]
但问题是:
^{pr2}$
在尝试匹配单词之前,您可能需要做一些预处理。所以“有”或“还没有”最终会变成“有”。在
我建议您同时查看词干或柠檬化:
NLTK的Wordnet Lemmatizer(我的最爱之一):http://www.nltk.org/_modules/nltk/stem/wordnet.html
NLTK的词干分析器:http://www.nltk.org/howto/stem.html
注意:为了使lemmatizer能够很好地处理动词,您必须指定它们实际上是动词。在
希望这有帮助!在
相关问题 更多 >
编程相关推荐