从包含允许单词的文件中检查输入的字符串

时间:2011-04-05 01:47:54

标签: java

我开始在这里写一个程序来检查用户输入的单词是否正确,然后程序将能够通过字母/ s从点到点字母/ s校正它。能够通过这一点移动字母到那一点,只是为了纠正取决于.txt文件中单词列表的单词。

e.g。输入:

"tihs is nto a corerct sentnece" (this is not a correct sentence)

如果用户输入了错误的单词,程序将扫描.txt文件然后找到最接近正确的单词只是为了纠正错误的输入单词然后程序有能力纠正它并输出正确的句子像:

"this is not a correct sentence" from (tihs is nto a corerct sentnece)

将根据.txt文件扫描每个不正确的单词。

我的问题是,我将如何开始编码这些东西?感谢...

2 个答案:

答案 0 :(得分:3)

Peter Norvig的"How to write a spelling corrector"

  

像谷歌这样的工业强度拼写纠正器的全部细节会比启发更令人困惑,但我认为在飞机回家的路上,在不到一页的代码中,我可以写一个玩具拼写纠正器达到80或处理速度至少为每秒10个字的90%准确度。

Peter Norvig是一位非常有才华的计算机科学家,也是一位出色的解释者,所以我强烈推荐他的博客。

答案 1 :(得分:2)

首先,你显然需要找到拼错的单词。接下来,您应该确定一种为可能正确的单词选择值的方法。即“folor”可能是“地板”,混乱的字母或“颜色”,“f”,而不是“c”,依此类推。在这种情况下,两个单词都非常接近:两个混合字母和一个字符替换键盘上靠近它的另一个字符。您必须根据您认为更常见的错误来分配这些值中的每一个。通常,您可以将每个单词的值设置为优先级队列,然后从那里拉出。 但是,如果唯一的情况是所描述的(交换字母),那么就样本量而言,它会更容易一些,但你仍然需要为每个单词分配一个值。

注意:nto也可以固定为吨。如果你想摆脱这种可能性,你也必须检查语法。