c#搜索“你是说”吗?功能

本文关键字:功能 你是说 搜索 | 更新日期: 2023-09-27 18:01:27

我想实现一个谷歌"你的意思是"一种功能与asp.net/c#。用户输入"Red Sheos",点击搜索,"你是说‘红鞋’吗?"

我该怎么做?

c#搜索“你是说”吗?功能

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

我在这里的回答(虽然是在一个有点不同的主题上)应该给你关于非精确匹配的想法。有几个很好的选项可以用来处理单词的"发音"。我想从Levenshtein开始。

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

要实现实时性能(例如,当您输入时搜索),请考虑我在这里描述的数据结构(一个树,或其混合)。

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

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

见下面的代码复查stackexchange问题

Code Review tree

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

这些可能有帮助:

自动纠错算法如何在PHP和/或c#中工作?

自动纠错文本c# Word