Python 3.x python3 nltk,WordNetLemmatizer发生错误
我看了看这本书,按照书中的内容编写了代码。顺便说一下,我有以下错误。我该怎么办Python 3.x python3 nltk,WordNetLemmatizer发生错误,python-3.x,nltk,pos-tagger,Python 3.x,Nltk,Pos Tagger,我看了看这本书,按照书中的内容编写了代码。顺便说一下,我有以下错误。我该怎么办 from nltk.stem import PorterStemmer, WordNetLemmatizer sent = 'The laughs you two heard were triggered by memories of his own high j-flying exits for moving beasts' lemmatizer = WordNetLemmatizer
from nltk.stem import PorterStemmer, WordNetLemmatizer
sent = 'The laughs you two heard were triggered by memories
of his own high j-flying exits for moving beasts'
lemmatizer = WordNetLemmatizer()
words = lemmatizer.lemmatize(sent, pos = 'pos')
File "D:/machine_learning/nltk_mapper.py", line 24, in <module>
word = lemmatizer.lemmatize(words, pos='pos')
File "D:\machine_learning\venv\lib\site-packages\nltk\stem\wordnet.py", line 40, in lemmatize
lemmas = wordnet._morphy(word, pos)
File "D:\machine_learning\venv\lib\site-packages\nltk\corpus\reader\wordnet.py", line 1818, in _morphy
exceptions = self._exception_map[pos]
KeyError: 'pos'
多谢各位
我已经解决了。 我引用了下面的url。 结果-->听到笑声是触发存储器自己的高j飞行退出移动野兽
谢谢引理化的目的是将一个词的不同屈折形式组合在一起,称为引理。例如,lemmatiser应该映射gone、going和go。因此,我们必须分别对每个单词进行语法化
from nltk.stem import PorterStemmer, WordNetLemmatizer
sent = 'The laughs you two heard were triggered by memories of his own high j-flying exits for moving beasts'
sent_tokenized = sent.split(" ")
lemmatizer = WordNetLemmatizer()
words = [lemmatizer.lemmatize(word) for word in sent_tokenized]
顺便问一下,你在书的哪一章找到了那个代码片段?或者它来自另一本书,不是吗?是的,我读了一本书《Python高级机器学习》,谢谢。就像我提到的,我想提取有意义的单词。有什么办法吗?['The','laugh','two','hear','trigger','memory','high','fly','exit','move','beast',你必须删除停止词。要删除停止词,请参阅此。非常感谢
from nltk.tag import pos_tag
from nltk.tokenize import word_tokenize
from nltk.stem import WordNetLemmatizer
def lemmatize_all(sentence):
wnl = WordNetLemmatizer()
for word, tag in pos_tag(word_tokenize(sentence)):
if tag.startswith("NN"):
yield wnl.lemmatize(word, pos='n')
elif tag.startswith('VB'):
yield wnl.lemmatize(word, pos='v')
elif tag.startswith('JJ'):
yield wnl.lemmatize(word, pos='a')
# else:
# yield word
print(' '.join(lemmatize_all('The laughs you two heard were triggered by memories of his own high j-flying exits for moving beasts')))
from nltk.stem import PorterStemmer, WordNetLemmatizer
sent = 'The laughs you two heard were triggered by memories of his own high j-flying exits for moving beasts'
sent_tokenized = sent.split(" ")
lemmatizer = WordNetLemmatizer()
words = [lemmatizer.lemmatize(word) for word in sent_tokenized]