我试图通过使用nltk pos_tag来获取一个单词是单数形式还是复数形式。但是结果并不准确。

因此,我需要一种方法来找到一个单词是单数形式还是复数形式?此外,我需要它而不使用任何python包。

最佳答案

对于英语,每个单词都应以某种方式具有根引理,其中默认复数为单数。

假设列表中只有名词,则可以尝试以下操作:

from nltk.stem import WordNetLemmatizer

wnl = WordNetLemmatizer()

def isplural(word):
    lemma = wnl.lemmatize(word, 'n')
    plural = True if word is not lemma else False
    return plural, lemma

nounls = ['geese', 'mice', 'bars', 'foos', 'foo',
                'families', 'family', 'dog', 'dogs']

for nn in nounls:
    isp, lemma = isplural(nn)
    print nn, lemma, isp

当单词超出单词网时,您将遇到问题,那么您必须在NLTK中使用更多复杂的classifierfinite state machines

10-06 06:29