【问题标题】:C# Search "Did you mean" functionality [closed]C#搜索“你的意思是”功能[关闭]
【发布时间】:2013-02-28 08:15:54
【问题描述】:

我想用 asp.net/c# 实现一种谷歌“你是说”的功能。 用户输入“Red Sheos”,然后点击搜索, 输出节目,“你是说‘红鞋’吗?”。

我该怎么做?

【问题讨论】:

    标签: c# asp.net search


    【解决方案1】:

    您需要一个拼写检查器和字典。我建议你从NHunspell开始。

    【讨论】:

    • 非常感谢您的帮助:)。
    【解决方案2】:

    My answer here(尽管主题有所不同)应该给你关于非精确匹配的想法。有几个很好的选项可用于处理单词“发音”的方式。我会从Levenshtein开始。

    采用不同的方法,SQL Server 全文索引还可以用最少的代码提供非精确匹配。它本身不一定是为了纠正,但确定用户的意图并不总是与语音相似度有关。

    要实现实时性能(例如,在您键入时进行搜索),请考虑我描述的 here 的数据结构(一个 trie 或其混合体)。

    【讨论】:

      【解决方案3】:

      检查 Trie 数据结构,请参阅此处Trie

      大多数拼写检查器都实现了某种 Trie,如果您需要实现自动完成功能,那么您也可以考虑 Trie

      请参阅下面的代码审查 stackexchange 问题

      Code Review trie

      【讨论】:

        【解决方案4】:

        尝试从自动更正功能中获得灵感。基本上,您要做的是对输入的文本调用自动更正,如果找到“解决方案”,请将其显示为 did you mean 建议。

        这些可能会有所帮助:

        How do autocorrect algorithms work in PHP and/or C#?

        AutoCorrect Text C# Word

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-09-25
          • 1970-01-01
          • 1970-01-01
          • 2011-10-19
          • 2015-02-21
          • 2010-12-25
          • 2011-03-25
          相关资源
          最近更新 更多