Versuchen enchant
von http://pythonhosted.org/pyenchant/tutorial.html
>>> from nltk import everygrams
>>> import enchant
>>> word = 'godaddy'
>>> [''.join(_ngram) for _ngram in everygrams(word) if d.check(''.join(_ngram))]
['g', 'o', 'd', 'a', 'd', 'd', 'y', 'go', 'ad', 'god', 'dad', 'add', 'daddy']
>>> d = enchant.Dict("en_US")
# Exclude single char words.
>>> [''.join(_ngram) for _ngram in everygrams(word) if d.check(''.join(_ngram)) and len(_ngram) > 1]
['go', 'ad', 'god', 'dad', 'add', 'daddy']
Aber wenn es alle Kombinationen von Strings, unabhängig davon, ob es ein gültiges englischen Wort:
>>> list(everygrams(word))
Siehe auch:
Hinweis
seine Einschränkung Jedes Verfahren Wörterbuch Überprüfung würde:
>>> from nltk.corpus import words as english
>>> vocab = set(w.lower() for w in english.words())
>>> "google" in vocab
False
>>> "stackoverflow" in vocab
False
>>> import enchant
>>> d = enchant.Dict("en_US")
>>> d.check('StackOverflow')
False
>>> d.check('Stackoverflow')
False
>>> d.check('Google')
True
Der „prinzipien“ Weg, um diese Aufgabe zu tun ist, Sprachmodellierung auf Zeichenebene zu tun und einige probabilistische Weise die Folge von Zeichen zu prüfen, ob mehr/weniger wahrscheinlich als englische Wörter.
Auch gibt es viele Englishs in der Welt. Ein "gültiges" Wort im britischen Englisch könnte ein unbekanntes Wort im amerikanischen Englisch sein. Siehe http://www.ucl.ac.uk/english-usage/projects/ice.htm und https://en.wikipedia.org/wiki/World_Englishes#Classification_of_Englishes
Sieht für mich aus, dass Sie einen * trie * verwenden möchten (nicht zu verwechseln mit * tree *). –