一个很好的字典/语料库来交叉检查复数名词



我使用"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

如果你正在寻找一些东西来帮助变形,你可以查看pyInflect或LemmInflect。 这些将比NLTK更好地为您完成工作。

如果你真的只是在寻找一个单词列表,请查看 Debian 软件包 wamerican。 如果你在Linux上,它可能已经安装在/usr/share/dict 中。 对于Windows,我相信您可以使用7-zip或其他几个程序来提取.deb文件,然后只需使用存档中的单词列表即可。

还有更大的列表,如wamerican-large,-huge和-crazy和wbritish版本(请参阅wamerica页面右侧的类似软件包(。

相关内容

最新更新