我使用nltk 3.0.4并注意到单词boss和老板的词条是不同的.
from nltk.stem.wordnet import WordNetLemmatizer
wnl = WordNetLemmatizer()
print wnl.lemmatize("boss", "n")
# returns "bos"
print wnl.lemmatize("bosses", "n")
# returns "boss"
从我的观点来看,这是一种奇怪的行为,特别是老板在WordNet中是known word并且有一个rule来保持ss.
有没有人有解释或这只是一个错误?我应该如何处理它?
最佳答案 >在检查生成给定单词的可能分析的
code(_morphy())之后,我发现没有包含规则来保持ss.
> 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: []}
调用print wnl.lemmatize(“boss”,“n”):
由于在应用替换规则时可以找到合适的基本形式(Bos
),因此返回它.如果这个没有包含在wordnet中,那么老板的引理就是老板,因为找不到更短的形式.