一个好的字典/语料库,可以对复数名词进行交叉检查

时间:2019-05-29 05:13:46

标签: python python-3.x nltk inflection

我使用“ nltk”识别名词,然后使用“ inflect”查找名词的复数形式。我添加了一种偶然性,其中用字典/语料库对复数形式进行了交叉检查,如果不存在该复数词,则添加“(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

1 个答案:

答案 0 :(得分:0)

如果您正在寻找有助于拐弯的东西,可以签出pyInflectLemmInflect。这些将比NLTK对您做得更好。

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

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