我正在用C#编写一个自然语言处理器,它可以提取句子的情感(积极/消极)。然而,在能够辨别拼写错误的单词的情绪方面存在一些问题-如果它不在字典中,我既不能标记它,也不能对它进行评级!
我知道一定有办法处理这件事的。谷歌总是给出准确的建议,我只需要从一个类似的算法中拿出最高的建议,然后用它来访问数据库。问题是,我不确定从哪里开始算法名称等等。我需要你帮我弄清楚。
我在网站上四处寻找类似的问题,发现了一些似乎有用的概念,但处理拼写错误和真实单词之间距离的基本方法基本上依赖于命中数据集中的每个单词,这似乎非常低效。如果能帮助算法快速运行,我们将不胜感激;这个分析引擎应该能够一天处理数千个项目。
提前谢谢。
发布于 2011-09-05 23:40:51
这个问题并不是那么愚蠢。诺维格为此写了一篇article。一般来说,难度取决于准确性。“最简单”的方法是使用前缀树或trie来避免探索所有的可能性。基本上,你有这样的东西:

沿着这条路走,你基本上会保持在正轨上。一旦你到达了你被卡住的地方,你应该检查如何根据你所犯的错误类型继续前进。
您可以阅读Norvig的文章以获得更深入的分析。
发布于 2011-09-06 17:25:10
dierre给出的方法-包括Peter Norvig的文章-当然值得进一步考虑。
但是,对于快速解决方案:如果在您自己的字典中找不到可能拼写错误的单词,则可以尝试在此list of common misspellings中查找映射
发布于 2011-09-06 21:27:34
如果您想要有效地计算拼写错误和大量字典单词之间的编辑距离,@dierre提到的前缀树非常有用。Brill和Moore (2000)描述了一种使用前缀树的方法,该方法使用与Norvig和许多其他拼写检查器相同的通用方法。他们的论文可以在这里找到:http://www.ldc.upenn.edu/acl/P/P00/P00-1037.pdf
https://stackoverflow.com/questions/7310030
复制相似问题