【问题标题】:Suggestive Spelling Checker based on edit distance and lcs?基于编辑距离和 lcs 的建议性拼写检查器?
【发布时间】:2011-03-27 11:21:04
【问题描述】:

如何实现一个简单的拼写检查器,它接受拼写错误的单词和编辑距离阈值,然后生成建议的正确单词列表。 这是希望使用一种算法来实现的 1-同时使用编辑距离和最长公共子序列 2-不计算字典中每个单词的编辑距离??????

【问题讨论】:

  • 什么时候到期???????????????

标签: c#


【解决方案1】:

所以你有一个单词字典,你想使用编辑距离来计算与给定单词最接近的匹配。

一些建议可以简化检查所有可能选项的过程:

  • 在进行计算时缓存与单词最接近的匹配项。如果有人输入“speling”,而您的热门匹配项是“spelling”、“spewing”和“spilling”,请将这些匹配项与其计算出的距离和阈值一起保存。下次您看到“拼写”时,您可以检索阈值
  • 使用levenshtein距离,在计算时,可以丢弃长度差大于阈值的任何单词。您应该能够缩短该过程。当然,如果你想要公共子序列,这就失败了。
  • 修改 levenshtein 距离计算器,使其在达到阈值时立即中断。您仍然会开始检查很多不匹配的单词,但提前中断会减少工作量。

如果您仍在使用 levenshtein 距离算法,请查看此示例。速度挺快的。

http://dotnetperls.com/levenshtein

【讨论】:

    【解决方案2】:

    Peter Norvig 在 Python 中完成了这项工作,并且有人将他的拼写检查器移植到 C#

    http://norvig.com/spell-correct.html

    http://www.codegrunt.co.uk/?page=cSharp#norvigSpell

    【讨论】:

      猜你喜欢
      • 2011-08-17
      • 2011-05-11
      • 1970-01-01
      • 2011-11-09
      • 2012-09-05
      • 2014-06-21
      • 2012-05-02
      • 2014-12-01
      • 1970-01-01
      相关资源
      最近更新 更多