Aus*_*p.b 2 python string nltk
从 python 中的给定字符串生成英语单词的所有可能组合。
输入:godaddy 输出:go、god、daddy、add、daddy
有什么好的图书馆吗?
尝试enchant从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']
Run Code Online (Sandbox Code Playgroud)
但如果都是字符串的组合,不管它是否是有效的英文单词:
>>> list(everygrams(word))
Run Code Online (Sandbox Code Playgroud)
也可以看看:
任何字典检查方法都有其局限性:
>>> 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
Run Code Online (Sandbox Code Playgroud)
完成此任务的“原则”方法是在字符级别进行语言建模,并使用某种概率方法来检查字符序列是否更有可能/更不可能成为英语单词。
而且,世界上有很多英国人。英式英语中的“有效”单词在美式英语中可能是未知单词。请参阅http://www.ucl.ac.uk/english-usage/projects/ice.htm和https://en.wikipedia.org/wiki/World_Englishes#Classification_of_Englishes
| 归档时间: |
|
| 查看次数: |
7007 次 |
| 最近记录: |