import nltk
from nltk.tokenize import word_tokenize
txt = "finding a common place isn't commonly available among commoners place"
fd = nltk.FreqDist()
for w in word_tokenize(a.lower()):
fd[w] += 1
我有上面的腳本,工作正常。如果我做fd['place']
我得到2,如果我型我fd['common']
得到1在nltk中用FreqDist匹配多個單詞
是否有可能鍵入類似fd['common*']
東西(不工作),以獲得3個,可能那些比賽的名單?在三場比賽將是(common, commonly, commoners)
我假設它有事情做與regex
,但不知道如何與FreqDist()
實施如果不是,是否有可能做任何其他的包?
正如我在回答中寫道,因爲你必須要掃描整個詞彙爲你檢查每一個字,這是極其緩慢。 – alexis
我同意你的意見。 'FreqDist'總體來說很慢,我可能會把它放在'計數器'上,這似乎跑得快得多。問題不僅在於前綴,我的例子可能已經顯示了這種方式,但我正在尋找包含該詞的所有匹配。 – Leb
但你只是列舉並掃描所有的鍵。這比'FreqDist'和'Counter'之間的差異要慢得多。如果你想快速查找,你需要索引子串,或者你需要改變你的方法。 – alexis