这是通用算法的东西太多,所以请不要停止阅读,如果你在文本中看到的Solr(请跳到第3行)拼写校正算法
Solr中,对于拼写检查组件我设置extendedResults得到的频率更正的单词,然后选择具有最佳频率的单词。我理解基于编辑距离的拼写检查算法。举一个例子:
查询到Solr:马里安
拼写检查文本返回:海洋(频率:120),市场(频率:900)等。我在这里的字典是基于索引单词。
所以我选择了市场(更多的频率),然而哪个是错误的,因为我的意图是海洋。两者的编辑距离为2.
现在我该如何改进这种算法来选择海洋而不是市场(基于比编辑距离和频率更多的东西)?
我是否也必须包含一些“soundex”算法呢?
我正在寻找简单的东西,我可以快速实施。
我甚至尝试过使用Peter Norvig的拼写校正算法(这很棒),但是我又碰到了同样的问题。
添加soundex **声音对我很好。对于一个给定的词,如果你找到一个好的“soundex”,然后建议给用户。如果不是,则继续处理另外两个变量:频率和距离。 – vulkanino 2012-03-01 11:58:28