NLTK 中的 WordNet lemmatizer:“老板”的正确引理是什么?

gak*_*hov 5 python nltk wordnet lemmatization

我使用nltk3.0.4 并注意到词的引理bossbosses不同。

from nltk.stem.wordnet import WordNetLemmatizer

wnl = WordNetLemmatizer()

print wnl.lemmatize("boss", "n")
# returns "bos"

print wnl.lemmatize("bosses", "n")
# returns "boss"
Run Code Online (Sandbox Code Playgroud)

从我的角度来看,这是一种奇怪的行为,尤其boss是WordNet 中的一个已知词,并且有一个规则要保持ss.

有没有人有解释或者这只是一个错误?我应该如何处理?

b30*_*000 2

  1. 在检查了为给定单词生成可能分析的代码_morphy())后,我发现没有包含要保留的规则ss
  2. Bos也是 wordnet 中的基本形式。

替换规则:

MORPHOLOGICAL_SUBSTITUTIONS = {
    NOUN: [('s', ''), ('ses', 's'), ('ves', 'f'), ('xes', 'x'),
           ('zes', 'z'), ('ches', 'ch'), ('shes', 'sh'),
           ('men', 'man'), ('ies', 'y')],
    VERB: [('s', ''), ('ies', 'y'), ('es', 'e'), ('es', ''),
           ('ed', 'e'), ('ed', ''), ('ing', 'e'), ('ing', '')],
    ADJ: [('er', ''), ('est', ''), ('er', 'e'), ('est', 'e')],
    ADV: []}
Run Code Online (Sandbox Code Playgroud)

呼叫print wnl.lemmatize("boss", "n")

Bos由于应用替换规则时可以找到合适的基本形式 ( ),因此将其返回。如果这没有被包含在 wordnet 中,则引理boss将是,boss因为找不到更短的形式。