考虑一个提出问题的程序,例如“您访问过的最后一个网站是什么?”答案是“stackoverflow”。用户被问到这个问题并给出答案“stakovervlow”或“overflowstack”。我仍然需要程序将其视为正确的答案。
为了比较普通字符串,我会使用StringCompare类,但在这种情况下这不起作用。我搜索了互联网,发现了一些关于SOUNDEX和一些算法的文章来比较字符串中的每个字符并计算相似百分比(如damerau levenshtein距离),但我真的不知道什么是最好的。
任何人都知道.net中是否有类来完成此操作或者将用户答案与正确答案进行比较的最佳方法是什么?
答案 0 :(得分:1)
从docs开始,有SpellCheck课程。您可以添加自定义词典以及“StackOverflow”等词语,这些词汇不在词典中。
答案 1 :(得分:0)
你要做的事情非常困难。简单但繁琐的方法是在数据库中创建一个列出常见拼写错误的字典或表。
困难的方法是尝试编写一些代码来进行自然语言处理。最成功的两项努力是Google和IBM的Watson超级计算机的语义搜索。我知道你不会很快重复他们的方法。