2

考虑一个询问您问题的程序,例如“您访问的最后一个站点是什么?” 答案是“stackoverflow”。用户被问到这个问题并给出答案“stakovervlow”或“overflowstack”。我仍然需要程序将其视为正确答案。

为了比较普通字符串,我会使用 StringCompare 类,但在这种情况下这不起作用。我在网上搜索了一些关于 SOUNDEX 的文章和一些算法来比较字符串中的每个字符并计算相似度百分比(如 damerau levenshtein 距离),但我真的不知道什么是最好的。

任何人都知道.net 中是否有一个类来完成此操作,或者将用户答案与正确答案进行比较的最佳方法是什么?

4

2 回答 2

1

文档中有 SpellCheck 类。您还可以为字典中没有的单词添加自定义字典,例如“StackOverflow”。

于 2012-06-25T16:21:14.343 回答
0

你想做的事情是相当困难的。简单但乏味的方法是在数据库中创建一个字典或一个表,列出常见的拼写错误。

困难的方法是尝试编写一些代码来进行自然语言处理。在这方面最成功的两个尝试是谷歌和 IBM 的沃森超级计算机的语义搜索。我猜你不会很快复制他们的方法。

于 2012-06-25T17:21:46.603 回答