【问题标题】:How to Implement a dictionary in C/C++ with autoCorrect, auto-complete, spellcheck如何在 C/C++ 中使用自动更正、自动完成、拼写检查实现字典
【发布时间】:2011-03-04 10:17:06
【问题描述】:

我必须为具有以下功能的字典实现编写 C/C++ 代码:

单词基本上有定义(1个或多个)。

1) 插入

2) 搜索(尽可能快)

3) 自动完成

4) 自动更正

5) 拼写检查

所以我需要知道该怎么做?

哪种数据结构应该是最有效的? Trie 或 hast 表或其他东西

使用哪种搜索技术...?

如何有效地实现自动补全和拼写检查..?

【问题讨论】:

  • 这是一个家庭作业问题(即您想提示如何实现它),还是您只需要让它工作,所以您可以链接到的现有解决方案就可以了吗?

标签: c dictionary autocorrect spell-checking


【解决方案1】:

您通常会使用一个单词树,按照 edit distance 相互排列,例如 BK tree

IIRC,这个想法是有一个平衡的树,每个单词通过根据编辑距离编号的边连接起来。如果你想找到一个词的最近匹配,你计算它到根词的编辑距离,然后跟随根词的相同数字的链接,重复这个过程,直到你到达一个叶子节点,它要么是同一个词,或最接近的匹配。

编辑:事后看来,我链接的那篇文章在解释方面比我做得好得多。我只是建议通读它以获得对该方法的一个很好的解释。

【讨论】:

    【解决方案2】:

    当然,您需要一个包含单词列表的数据库,然后您需要将文本拆分为单词并查看它们是否存在于数据库中。

    对于自动完成,您只需检查目前输入的文本是否与字典中的单词匹配(使用 LIKE txt+'%' 子句),通过 AJAX 调用实现。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多