我一直在寻找轻量级的库,它允许我提供一堆单词,然后询问一个给定的单词是否会有任何接近的匹配.z
我并不特别关注基础算法(我认为一个简单的汉明距离算法可能就足够了,我自己承担这个任务)。
我只是在开发一种小语言,我发现在检测到“未定义的类”错误时(很多时候它只是一个拼写错误的单词)向用户提出建议很有意义。我不想在这个问题上浪费太多时间。
由于
答案 0 :(得分:1)
不一定是图书馆,但我认为this article可能真的很有帮助。它主要描述了拼写纠正器如何在python中工作的一般工作方式,但也有一个java实现的链接,如果你正在寻找的话,你可以使用它(注意我之前没有专门使用过java) )
答案 1 :(得分:1)
Levenshtein距离是处理它的常用方法。只需将所有单词添加到列表中,然后通过暴力强制迭代它并返回最小距离。这是一个具有Levenschtein函数的库:http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringUtils.html
如果你有大量的单词并且希望它快速运行,那么你必须使用ngrams。将每个单词填入bigrams,然后将(bigram,word)添加到地图中。使用地图查找目标单词中的双字母组,然后遍历候选项。不过,这可能比你想做的更多。