2012-04-01 25 views
2

我正在嘗試用於自然語言處理的Python庫NLTK。執行詞幹輸出亂碼/級聯詞

我的問題:我試圖執行詞幹;將單詞減少到規範化的形式。但它沒有產生正確的詞彙。我是否正確使用詞幹類?我怎樣才能得到我想要得到的結果?

我想正常化下面的話:

words = ["forgot","forgotten","there's","myself","remuneration"] 

...這個:

words = ["forgot","forgot","there","myself","remunerate"] 

我的代碼:

from nltk import stem 
words = ["forgot","forgotten","there's","myself","remuneration"] 
for word in words: 
    print stemmer.stem(word) 

#output is: 
#forgot forgotten there' myself remuner 

回答

1

有兩種類型的正常化可以的在單詞級別做。

  1. 詞幹 - 一個快速和骯髒的黑客的話轉換成一些象徵性的,其不能保證是一個實際的詞,但一般不同形式的同一個單詞應該映射到相同的朵朵令牌

  2. 詞形化 - 將一個詞轉換成一些基本形式(單數,現在時等),這本身就是一個合法的詞。這顯然可能更慢更復雜,並且通常不需要大量的NLP任務。

您似乎在尋找一個lemmatizer而不是stemmer。搜索堆棧溢出「lemmatization」應該給你很多關於如何設置其中一個的線索。我玩過這個叫morpha的遊戲,並且發現它非常有用,很酷。