How to check if a word is an English word with Python? How to check if a word is an English word with Python? python python

How to check if a word is an English word with Python?


For (much) more power and flexibility, use a dedicated spellchecking library like PyEnchant. There's a tutorial, or you could just dive straight in:

>>> 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 comes with a few dictionaries (en_GB, en_US, de_DE, fr_FR), but can use any of the OpenOffice ones if you want more languages.

There appears to be a pluralisation library called inflect, but I've no idea whether it's any good.


It won't work well with WordNet, because WordNet does not contain all english words.Another possibility based on NLTK without enchant is NLTK's words corpus

>>> 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


Using NLTK:

from nltk.corpus import wordnetif not wordnet.synsets(word_to_test):  #Not an English Wordelse:  #English Word

You should refer to this article if you have trouble installing wordnet or want to try other approaches.