Nltk的wordnet词缀化器没有对所有单词进行词法化

2024-10-01 13:36:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我在试着把课文中的单词词组化。比如说,pickled应该变成pickle,ran变成run,葡萄干变成raisen等等

我使用nltk的WordNet Lemmatizer,如下所示:

from nltk.stem import WordNetLemmatizer
>>> 
>>> lem = WordNetLemmatizer()
>>> print(lem.lemmatize("cats"))
cat
>>> print(lem.lemmatize("pickled"))
pickled
>>> print(lem.lemmatize("ran"))
ran

因此,正如您在'pickled''ran'中看到的那样,输出没有如预期的那样出现。如何获得这些单词的'pickle''run',而不必为单词指定'v'(动词)等。在


Tags: run单词picklewordnetprint课文lemmatizerlemmatize
1条回答
网友
1楼 · 发布于 2024-10-01 13:36:15

通过获取传递'v''n'参数而不传递任何内容的函数的最常见结果,可以获得名词或动词的lemmatize()函数的基形式。在

这不是一种直接的方法,但是您可以尝试以下代码来获取名词或动词的基本形式:

def most_common(lst):
    return max(set(lst), key=lst.count)
words = ['ran','pickled','cats',"crying","died","raisins","had"]
for word in words:
    checkList=[WordNetLemmatizer().lemmatize(word,'v'),WordNetLemmatizer().lemmatize(word,'n'),WordNetLemmatizer().lemmatize(word,'n')]
    print most_common(checkList)

你得到了基本形式:

^{pr2}$

相关问题 更多 >