【发布时间】:2013-02-28 08:15:54
【问题描述】:
我想用 asp.net/c# 实现一种谷歌“你是说”的功能。 用户输入“Red Sheos”,然后点击搜索, 输出节目,“你是说‘红鞋’吗?”。
我该怎么做?
【问题讨论】:
我想用 asp.net/c# 实现一种谷歌“你是说”的功能。 用户输入“Red Sheos”,然后点击搜索, 输出节目,“你是说‘红鞋’吗?”。
我该怎么做?
【问题讨论】:
您需要一个拼写检查器和字典。我建议你从NHunspell开始。
【讨论】:
My answer here(尽管主题有所不同)应该给你关于非精确匹配的想法。有几个很好的选项可用于处理单词“发音”的方式。我会从Levenshtein开始。
采用不同的方法,SQL Server 全文索引还可以用最少的代码提供非精确匹配。它本身不一定是为了纠正,但确定用户的意图并不总是与语音相似度有关。
要实现实时性能(例如,在您键入时进行搜索),请考虑我描述的 here 的数据结构(一个 trie 或其混合体)。
【讨论】:
【讨论】:
尝试从自动更正功能中获得灵感。基本上,您要做的是对输入的文本调用自动更正,如果找到“解决方案”,请将其显示为 did you mean 建议。
这些可能会有所帮助:
【讨论】: