我正在寻找一个轻量级库,它允许我向它提供一堆单词,然后询问它给定的单词是否有任何接近的匹配。z
我并不特别关心底层算法(我认为如果我自己承担这项任务,一个简单的汉明距离算法可能就足够了)。
我正在开发一种小语言,我发现在检测到“未定义的类”错误时向用户提出建议(很多时候只是拼写错误的单词),这是很漂亮的。不过,我不想在这个问题上浪费太多时间。
谢谢
最佳答案
编辑距离是处理它的常用方法。只需将所有单词添加到列表中,然后对其进行强力迭代并返回最小距离。这是一个具有 Levenschtein 函数的库:http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringUtils.html
如果你有大量单词并且希望它运行得更快,那么你必须使用 ngram。将每个单词分解为二元组,然后将(二元组,单词)添加到 map 中。使用映射查找目标单词中的二元词,然后迭代候选词。不过,这可能比您想做的还要多。
关于java - 能够建议有限集合中单词的不同拼写的轻量级库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13695882/