如何用 Python 检查一个单词是否是英文单词?

新手上路,请多包涵

如果一个单词在英语词典中,我想检查一个 Python 程序。

我相信 nltk wordnet 接口可能是要走的路,但我不知道如何将它用于这样一个简单的任务。

 def is_english_word(word):
    pass # how to I implement is_english_word?

is_english_word(token.lower())

将来,我可能想检查字典中是否有单词的单数形式(例如,属性 -> 属性 -> 英语单词)。我将如何实现这一目标?

原文由 Barthelemy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 903
2 个回答

要获得(更多)更多的功能和灵活性,请使用专用的拼写检查库,例如 PyEnchant 。有一个 教程,或者您可以直接进入:

 >>> import enchant
>>> d = enchant.Dict("en_US")
>>> d.check("Hello")
True
>>> d.check("Helo")
False
>>> d.suggest("Helo")
['He lo', 'He-lo', 'Hello', 'Helot', 'Help', 'Halo', 'Hell', 'Held', 'Helm', 'Hero', "He'll"]
>>>

PyEnchant 附带一些词典(en_GB、en_US、de_DE、fr_FR),但如果您需要更多语言,可以使用任何 OpenOffice 词典。

似乎有一个名为 inflect 的复数库,但我不知道它是否有用。

原文由 Katriel 发布,翻译遵循 CC BY-SA 4.0 许可协议

它不适用于 WordNet,因为 WordNet 不包含所有英文单词。另一种基于NLTK而没有附魔的可能性是NLTK的词库

>>> from nltk.corpus import words
>>> "would" in words.words()
True
>>> "could" in words.words()
True
>>> "should" in words.words()
True
>>> "I" in words.words()
True
>>> "you" in words.words()
True

原文由 Sadık 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题