我正在制作一个有点大型语料库,文章数量达数万。我目前正在使用PDFBox提取各种成功,我正在寻找一种方法来编程检查每个文件,看看提取是否适度成功。我目前正在考虑在每个语言上运行一个拼写检查程序,但语言可能有所不同,我还不确定我正在处理哪种语言。使用分数进行自然语言检测也可能是一个想法。
哦,任何方法都必须与Java一起使用,快速且相对快速地集成。
答案 0 :(得分:2)
尝试自动学习拼写检查。这并不像听起来那么可怕:从包含您可能遇到的所有单词的大字典开始。这可以来自几种语言。
扫描PDF时,允许一定数量的未知单词(比如说5%)。如果这些单词中的任何一个经常重复(比如说5次),请将它们添加到字典中。如果PDF包含超过5%的未知单词,则很可能无法处理。
扫描仪会随着时间的推移学习,如果需要,可以减少未知单词的数量。如果这太多了,那么一本非常大的词典也应该运作良好。
如果您没有字典,请手动处理几个文档并让扫描仪学习。在十几个文件之后,你的新词典应该足够大,以达到合理的水位。
答案 1 :(得分:2)
你可以根据一个停用词列表运行语料库(搜索引擎忽略的最常用的词,比如“和”和“the”),但是你显然需要首先停止所有可能/可能语言的单词列表
答案 2 :(得分:1)
当然,没有任何方法是完美的。
通常有两类文本提取问题:
1 - 没有任何东西被提取出来。 这可能是因为您有扫描的文档或PDF中的内容无效。
通常很容易检测,你不应该用复杂的代码来检查那些。
2 - 你得到了垃圾。 大多数时候因为PDF文件是奇怪的编码。 这可能是因为未正确声明自制编码,或者PDF作者可能需要PDF无法识别的字符(例如,在adobe字形列表中有一段时间缺少带有cedilla的土耳其语S:您无法创建正确编码的文件在里面,所以你必须作弊才能在页面上看到它。
我使用基于ngram的方法根据提取的文本检测PDF文件的语言(使用不同的技术,但想法是相同的)。语言未被识别的文件通常是问题的好嫌疑人......
关于拼写检查我想如果您有多种语言,它会给您带来大量的误报!