Java 当您使用朴素贝叶斯算法拼错一个单词时,请接近字典(数据库)中的单词
我想使用朴素贝叶斯进行文本分类,当用户拼错一个单词时,可以接近字典(数据库)中的单词。例如:用户输入“sheese”,输出将是“cheese” 请问我怎么用?知道我的项目是用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
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”天真的贝叶斯无法做到这一点。这不是一项分类任务。目标变量可以是任何拼写正确的变量
即使您找到了一些解决方法来实现这一点,您最终也会得到一个非常无用的模型,因为它可能会为您先前决定的很少几个单词提供输出。还有其他拼写纠正技巧可以做到这一点。其中一个好方法是我认为询问可能是获得答案的更快方法。