自动完成算法,论文,策略等

时间:2008-10-22 18:20:39

标签: autocomplete

我想知道是否有人有足够的资源来阅读或编写代码来试验“自动完成”

我想知道自动完成背后的理论是什么,从哪里开始常见的错误等等。

我发现像Enso,Launchy,Google Chrome甚至tcsh这样的产品表现出令人着迷的自动完成方式,我开始自我只是为了好奇一些示例代码而且我得出结论这必须是之前广泛探索的领域。< / p>

如果有人分享关于如何实现这一点的任何好的技术资源,我将不胜感激。

提前致谢。

3 个答案:

答案 0 :(得分:12)

答案 1 :(得分:2)

查看此博客,了解如何使用GWT实现自动填充:

http://jroller.com/glongman/entry/gwt_autocompleter

但我建议你先从自己非常简单的事情开始,掌握实施的方式。我从一个Trie开始,甚至可能完全存储在客户端上,如果您认为有必要,可以继续优化服务器查询。

答案 2 :(得分:0)

自动填充通常使用以下方法之一实现:

  • 即可。通过索引树结构中的可搜索文本(前缀树,后缀树,dawg等),可以以内存存储为代价执行非常快速的搜索。树遍历可以进行近似匹配。
  • 模式分区。通过将文本划分为标记(ngrams),可以使用简单的散列方案执行模式发生的搜索。
  • 过滤即可。找到一组潜在的匹配,然后应用顺序算法检查每个候选人。

关于这个问题的几篇论文:

  • BořivojMelichar。有限自动机的近似字符串匹配;
  • Gonzalo Navarro。近似字符串匹配的导览;
  • Leonid Boytsov。近似字典搜索的索引方法:比较分析;
  • Marios Hadjieleftheriou和Divesh Srivastava。近似字符串处理;
  • Surajit Chaudhuri和Raghav Kaushik。扩展自动填充以容错;

查看completely,一个Java自动完成库。