有几个单词使用“-ing”作为连续的“闪亮”。但是当我尝试使用nltk将“闪亮”变为“闪亮”时,它会变成“shin”。代码是这样的:
from nltk.stem import WordNetLemmatizer
wordnet_lemmatizer = WordNetLemmatizer()
word = "shining"
newlemma = wordnet_lemmatizer.lemmatize(word,'v')
print newlemma
即使不使用'v',它仍然是相同的“闪亮”并且不会改变。 我期待输出“闪耀”。 有人可以帮忙吗?感谢
答案 0 :(得分:1)
由于WordNet在搜索根表单时应用规则和例外列表的方式。
它有一个规则列表,特别是删除单词结尾,例如:
"ing" -> ""
"ing" -> "e"
它应用规则并查看WordNet中是否存在生成的单词表单。例如,对于mining
,它会尝试min
而找不到任何内容。然后它会尝试mine
(第二条规则)并找到mine
是有效字并返回它。但是对于shining
,它可能会尝试shin
,在有效单词列表中找到shin
并认为这是正确的根,因此它会返回它。