3
我構建了一個Plaintext-Corpus,下一步是將所有文本進行解讀。我正在使用WordNetLemmatizer,並且需要爲每個令牌使用pos_tag以便不會出現例如愛 - >引理=愛與愛 - >引理=愛...NLTK:lemmatizer和pos_tag
默認WordNetLemmatizer-POS-標籤爲n(=名詞)我想,但我怎麼能使用pos_tag?我認爲預期的WordNetLemmatizer-POS-Tag與我得到的pos_tag不同。有沒有功能或可以幫助我的東西?!?!
在這一行我認爲word_pos是錯誤的,這就是錯誤的原因
引理= wordnet_lemmatizer.lemmatize(文字,word_pos)
import nltk
from nltk.corpus import PlaintextCorpusReader
from nltk import sent_tokenize, word_tokenize, pos_tag
from nltk.stem import WordNetLemmatizer
wordnet_lemmatizer = WordNetLemmatizer()
corpus_root = 'C:\\Users\\myname\\Desktop\\TestCorpus'
lyrics = PlaintextCorpusReader(corpus_root,'.*')
for fileid in lyrics.fileids():
tokens = word_tokenize(lyrics.raw(fileid))
tagged_tokens = pos_tag(tokens)
for tagged_token in tagged_tokens:
word = tagged_token[0]
word_pos = tagged_token[1]
print(tagged_token[0])
print(tagged_token[1])
lemma = wordnet_lemmatizer.lemmatize(word,pos=word_pos)
print(lemma)
其他問題:是pos_tag足夠我的詞性化或需要我另一個標籤?我的文本是歌詞...
我認爲你的診斷是正確的; nltk已經獲得了一個新的POS標記器,但是顯示的解決方案[here](http://stackoverflow.com/q/15586721/699305)仍然可以工作。如果你確定'nltk.pos_tag()'的準確性(如果你的文本沒有那麼奇怪以至於它需要一個自定義標記器),那麼你就不需要爲安裝另一個標記器而煩惱。 – alexis
(無恥插件; P)試試這個:https://gist.github.com/alvations/07758d02412d928414bb?這是從https://github.com/alvations/pywsd代碼片段 – alvas
也許這也是適當的https://github.com/alvations/pywsd/blob/master/pywsd/utils.py#L100 – alvas