3

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

我怎样才能做到这一点?

4

4 回答 4

3

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

于 2013-02-28T08:18:52.337 回答
3

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

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

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

代码审查特里

于 2013-02-28T08:36:50.697 回答
3

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

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

为了实现实时性能(例如,在您键入时搜索),请考虑我在此处描述的数据结构(trie,或其混合)。

于 2013-02-28T08:28:11.923 回答
1

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

这些可能会有所帮助:

自动更正算法如何在 PHP 和/或 C# 中工作?

自动更正文本 C# Word

于 2013-02-28T08:18:29.537 回答