C#搜索“你的意思是”function
我想用asp.net/c#实现谷歌“你是不是意味着”这种function。 用户输入“Red Sheos”,点击搜索,Out put节目,“你的意思是’红鞋’”。
我怎样才能做到这一点?
你需要一个拼写检查和字典。 我建议你从NHunspell开始。
我在这里的答案 (虽然在一个不同的主题上)应该给你关于非完全匹配的想法。 有几个很好的选择来处理单词“声音”的方式。 我从Levenshtein开始。
采用不同的方法,SQL Server全文索引还可以使用最少的代码提供非精确匹配。 它不一定用于校正本身,但确定用户的意图并不总是仅仅是语音相似性。
为了实现实时性能(例如在键入时搜索),请考虑我在此描述的数据结构(trie或其混合)。
检查Trie数据结构,请参见此处
如果您需要实现自动完成function,大多数拼写检查器也会实现某种Trie,那么您也可以想到Trie
请参阅下面的代码回顾stackexchange问题
代码审查trie
尝试从自动更正function中获取灵感。 基本上你要做的是在输入的文本上调用自动更正,如果找到“解决方案”,则表明did you mean
建议。
这可能有所帮助:
自动更正算法如何在PHP和/或C#中工作?
自动更正文本C#Word