我试图通过使用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
中使用更多复杂的classifier或finite state machines。