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