[使用朴素贝叶斯算法拼写错误的单词可获得字典(数据库)的紧密单词

问题描述 投票:-1回答:1

当用户拼错一个单词时,我想使用朴素贝叶斯进行文本分类以获得字典(数据库)的紧密单词。例如:用户输入“ sheese”,则输出将为“ cheese”。

请我如何使用它?知道我的项目在java中。

感谢您的任何建议或意见。

java machine-learning artificial-intelligence java-ee-6 naivebayes
1个回答
0
投票

我的想法是:

  1. 您将拥有大量的数据集,其中包含拼写错误的单词及其相应的正确版本。我们正在寻找P(correct|wrong)
  2. 对于每一个,您都将计算出P(wrong|correct)(记住,对于贝叶斯,我们需要它),这意味着在给出正确单词的情况下成为错误单词的可能性。例如:“奶酪”可能被拼写为“ sheese”或“ shess”,其中第一个更有可能出现并且出现在75%的时间中,而另一个仅出现在25%的时间中。因此:P(sheese|cheese) = 0.75P(shees|chesse) = 0.25
  3. 您还可以计算给定字典中每个正确单词的总出现次数。含义:P(cheese) = 0.7P(chess) = 0.3。这些将是我们的P(correct)
  4. 现在输入的单词有误,可以使用贝叶斯定理来计算每个概率。

P(correct|wrong) = P(wrong|correct) * P(correct) / P(wrong)

P(wrong)对于所有可能的正确单词都是相同的,因此我们暂时可以忽略它。我们剩下的是:

P(correct|wrong) = P(wrong|correct) * P(correct)

(假设P(sheese|chess) =0.25)现在给定单词"sheese",我们可以计算P(cheese|sheese) = 0.7*0.75 = 0.525P(chees|sheese) = 0.3*0.25 = 0.075,因此将单词分类为"cheese"

© www.soinside.com 2019 - 2024. All rights reserved.