近期做了一个自己主动纠错演示网页:nfabo.cn
当 Query 中有一些错别字时,搜索引擎会尝试纠错
搜索引擎把这些字还原成拼音,用一个拼音同样的已知 Query 取代。
可是,当输错的汉字是多音字。特别是有多个这种错误输入时,全部的搜索引擎基本上都无论。 或者仅使用一个最经常使用的音去纠错。
由于要考虑全部可能的拼音组合,在极端情况下会导致指数爆炸!
我的算法攻克了这个指数爆炸问题
- 这个演示页面眼下仅仅收录了 800万 条 短语+词频。数据也不太干净
- 该算法所有在内存中执行,使用了 360M 内存。这个数据量,假设用传统方法暴力实现,而且达到这个性能,须要
几十GB 的内存
- 这个server是一个租用的虚拟云主机,单核,比我2009年的笔记本电脑还要慢 3 倍
基于编辑距离的纠错
在已知的搜索词中寻找编辑距离与用户
Query 最小的词,使用我的算法也能够高效解决(还没做演示页面)