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