sta*_*ger 4 python text nltk python-textprocessing
我目前有这样一句话:
text = "This is a car."
Run Code Online (Sandbox Code Playgroud)
然后我使用一个tokeniser,然后像这样干它:
ps = PorterStemmer()
text = word_tokenize(text)
stemmed_words = []
for w in words:
stemmed_words.append(ps.stem(w))
Run Code Online (Sandbox Code Playgroud)
但是,我现在希望使用NLTK的lemmainser来代替.要使用它,我需要给它一个像这样的单词的部分(在循环内):
lemmatizer = WordNetLemmatizer()
word = lemmatizer.lemmatize(w, pos=pos)
Run Code Online (Sandbox Code Playgroud)
但是,我不确定如何得到pos论证.我知道我可以使用它来获得演讲的一部分,但不接受作为参数:
pos = nltk.pos_tag(text)
Run Code Online (Sandbox Code Playgroud)
你需要一本字典来将NLTK POS标签翻译成WordNet标签:
pos_translate = {'J':'a', 'V':'v', 'N':'n', 'R':'r'}
Run Code Online (Sandbox Code Playgroud)
现在,提取POS标签,翻译每个标签,如果可能的话(如果可能的话,选择一个默认标签,比方说"n",和lematize:
text = ['This', 'is', 'a', 'car', '.']
[lemmatizer.lemmatize(w,\
pos=pos_translate[pos[0]] if pos[0] in pos_translate else 'n')\
for w,pos in nltk.pos_tag(text)]
# ['This', 'be', 'a', 'car', '.']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
110 次 |
| 最近记录: |