Я использую «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