我使用“nltk”来识别名词,然后“变形”来找到名词的复数形式。我添加了一个意外情况,其中复数形式与字典/语料库进行交叉检查,如果该复数词不存在,则附加“(s)”而不是使用复数形式。以下是一小部分代码(交叉检查部分)。
import inflect
word = input()
p = inflect.engine()
pluralized = p.plural(word
with open("words.rtf") as f:
text = f.read().strip().split()
if pluralized in text:
newword = pluralized
else:
newword = word+"(s)"
print(word," : ",newword)
问题是我使用的字典/语料库“words.rtf”没有大多数可能单词的复数形式。是否有包含更多复数示例的文本文件或更好的交叉检查方法。我想拒绝缩写和首字母缩略词的复数形式,只接受正确英语单词的复数形式。例如,
knife: knives
ID: ID(s) #not IDS