![](/img/trans.png)
[英]Python NLTK - counting occurrence of word in brown corpora based on returning top results by tag
[英]Python NLTK: search for occurrence of a word
我使用棕色語料庫“brown.words()”,它給了我 1161192 個單詞的列表。
現在我想找到“have”這個詞的任何出現,所以無論何時在語料庫中有“has”、“had”、“haven't”等。 我想做點什么(可能是將它們推入一個數組,可能是一個計數器,也可能是其他東西。
編輯:請注意,這個問題是關於尋找匹配的詞。 如果我搜索“have”,我想要一種將它與“have't”或“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"]
但問題是:
for word in brown.words():
lemma = lmtzr.lemmatize(word)
# if word is "having" lemma also is "having" instead of "have"
在嘗試匹配單詞之前,您可能需要進行一些預處理。 所以“有”或“沒有”最終會“轉化”為“有”。
我建議你看看詞干或詞形還原:
NLTK 的 Wordnet Lemmatizer(我的最愛之一): http : //www.nltk.org/_modules/nltk/stem/wordnet.html
NLTK 的詞干分析器: http ://www.nltk.org/howto/stem.html
注意:要使詞形還原器與動詞配合使用,您必須指定它們實際上是動詞。
nltk.stem.WordNetLemmatizer().lemmatize('having', 'v')
希望這可以幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.