Java 当您使用朴素贝叶斯算法拼错一个单词时,请接近字典(数据库)中的单词

Java 当您使用朴素贝叶斯算法拼错一个单词时,请接近字典(数据库)中的单词,java,machine-learning,artificial-intelligence,java-ee-6,naivebayes,Java,Machine Learning,Artificial Intelligence,Java Ee 6,Naivebayes,我想使用朴素贝叶斯进行文本分类,当用户拼错一个单词时,可以接近字典(数据库)中的单词。例如:用户输入“sheese”,输出将是“cheese” 请问我怎么用?知道我的项目是用java编写的 谢谢你的建议和意见 我的想法是: 您将拥有一大组包含拼写错误的单词及其相应的正确版本的数据。我们正在寻找P(正确|错误) 对于其中的每一个,你都会计算出P(错误的|正确的)(记住,对于Bayes,我们需要它),这意味着在给定一个正确单词的情况下,成为错误单词的概率。例如:“cheese”可能被拼错为“shee

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

请问我怎么用?知道我的项目是用java编写的

谢谢你的建议和意见

我的想法是:

  • 您将拥有一大组包含拼写错误的单词及其相应的正确版本的数据。我们正在寻找
    P(正确|错误)
  • 对于其中的每一个,你都会计算出
    P(错误的|正确的)
    (记住,对于Bayes,我们需要它),这意味着在给定一个正确单词的情况下,成为错误单词的概率。例如:“cheese”可能被拼错为“sheese”或“shess”,其中第一个更可能出现,出现的时间占75%,而另一个只有25%的时间出现。所以:
    P(奶酪)=0.75
    P(奶酪)=0.25
  • 你还可以计算出每一个正确单词在给定词典中的总出现次数。意思是:
    P(cheese)=0.7
    P(chess)=0.3
    。这些将是我们的
    P(正确)
  • 现在你得到一个错误的单词作为输入,可以使用贝叶斯定理来计算每个概率
    p(正确|错误)=p(错误|正确)*p(正确)/p(错误)

    p(错误)
    对于所有可能的正确单词都是一样的,所以我们现在可以忽略它。留给我们的是:

    p(正确|错误)=p(错误|正确)*p(正确)

    (假设
    p(sheese|chess)=0.25

    现在给定单词“sheese”我们可以计算出
    P(cheese | sheese)=0.7*0.75=0.525
    P(cheese | sheese)=0.3*0.25=0.075
    ,因此将这个单词归类为
    “cheese”

    天真的贝叶斯无法做到这一点。这不是一项分类任务。目标变量可以是任何拼写正确的变量

    即使您找到了一些解决方法来实现这一点,您最终也会得到一个非常无用的模型,因为它可能会为您先前决定的很少几个单词提供输出。还有其他拼写纠正技巧可以做到这一点。其中一个好方法是

    我认为询问可能是获得答案的更快方法。