我试图编写一个拼写检查程序,我想用difflib来实现它。基本上,我有一个添加到标准unix字典(/usr/share/dict/words
)的技术术语列表,并将其存储在我调用的文件中词典文件.py. 在
我还有另外一个剧本叫字符串模拟.py在这里我导入字典并根据它测试示例字符串。以下是基本代码:
import os, sys
import difflib
import time
from dictionaryFile import wordList
inputString = "dictiunary"
print "Search query: "+inputString
startTime = time.time()
inputStringSplit = inputString.split()
for term in inputStringSplit:
termL = term.lower()
print "Search term: "+term
closeMatches = difflib.get_close_matches(termL,wordList)
if closeMatches[0] == termL:
print "Perfect Match"
else:
print "Possible Matches"
print "\n".join(closeMatches)
print time.time() - startTime, "seconds"
它返回以下值:
^{pr2}$我想知道是否有更好的策略可以用来查找相似的匹配项(假设一个单词拼写错误)。我想把Snapam作为这个应用程序的一部分来优化。有没有更好的方法可以构造wordList变量(现在它只是一个单词列表)?在
谢谢。在
我不确定difflib是否是此类工作的最佳解决方案;通常,拼写检查程序使用某种编辑距离,例如Levenshtein距离。NLTK包括edit distance的实现,我将从这里开始。在
相关问题 更多 >
编程相关推荐