2012-10-08 164 views
2

我正在实现用于比较java中两个文本文件的工具。 文本文件仅包含数字,字母数字和键盘符号。 将一个文件与其他文件进行比较,找到拼写,标点符号或缺少文本错误。文本文件比较

例子:

Original word: Her 
Error Word: hor 
It is spelling error 

Original word: Miss 
Error Word: miss 
It is Punctuation error 

无需使用字典,因为拼写也从原来的文件进行比较。如果在原始文件中是她的文字,而在第二个文件中该文字是hor而不是它产生的拼写错误,但是问题在于分类的拼写,标点符号或丢失的文本没有做好

如果有可用的任何函数或工具,我的问题比请建议我。

+1

Java自身不提供任何拼写检查功能,它只会为您分割字符串。因此,如果您想进行拼写检查,您必须自己动手或使用像http://code.google.com/p/google-api-spelling-java/这样的API。 – dngfng

+0

我不认为他正在寻找拼写检查api。他想比较两个不同文件中的单词,并在此基础上进行拼写检查。 一个正确的单词(原始单词)可能是“heree”,而在其他文件中可能是“here”(通过字典是正确的),但与原始单词相比是错误的。 –

+0

或类似的东西:http://docs.oracle.com/javase/1.4.2/docs/guide/nio/example/Grep.java –

回答

0

您需要实现字典Trie data structure。这是以可预测的结果进行拼写纠正的唯一方法。

0

由于我不能在原帖子下发表评论,所以我会在这里要求澄清。

问题“如何判断单词是否丢失”?例如,如果你有行:

“我的名字是罗伊,在这里是一堆其他文本的”

“我叫罗伊,这里是一堆其他文本的”

因为第二行缺少单词“is”,程序报告了一堆拼写错误而不是丢失的单词错误?

+0

如果第一行是原始行比它给出缺少测试:“是”错误 但问题是,它不匹配第一行中的'is'和第二行中的'roy'后会产生一堆拼写错误。 –

+0

@mayur Ra​​nk,兄弟,如果这是问题,那么,每遇到一个丢失的单词,将第二行指针留在那里本身并遍历第一行指针到下一个单词。 –

+0

我认为这可能是问题所在。唉,我对你没有简单的答案,但Google快速搜索显示这似乎是一个常见问题。在“算法”下查看http://en.wikipedia.org/wiki/Diff描述了这个问题。如果你的谷歌“diff java”(不含引号),你会发现很多关于这个问题的链接和各种解决方案。希望他们对你有意义。祝你好运! – Roy