如何从文档中提取/识别文本?

时间:2011-12-22 19:54:57

标签: php pdf ms-word ocr lamp

我需要从上传的文档中提取纯文本,以便对其进行搜索。文档可以是MS Word或pdf(扫描或包含文本)。有问题的应用程序在LAMP堆栈上运行,但安装其他软件可能是一种选择。是否有任何工具,服务,库或您可以推荐的组合来完成此任务?

3 个答案:

答案 0 :(得分:4)

您可以将pdftotext等shell实用程序用于PDF,wvWare用于DOC,docx2txt.pl用于DOCX,就像textractor ruby​​gem一样。

# on Ubuntu
apt-get install wv xpdf-utils links

还有用于提取PDFdocx的本机php类。

另一个rubygem,即使是Tesseract,它甚至为你做OCR,也是docsplit

考虑Solr进行索引和搜索可能是个好主意。您可以使用Solr Cell插件来索引和搜索Word文档,PDF等。我在其中一个项目中成功使用它。 Solr Cell基于Apache POITikaPDFBox等多个项目。

棘手的部分是设置所有依赖于细胞的jar和solr模式,并找出索引请求参数,但所有这些都可以从wiki文档中找到。 Here's我的jar和架构让你开始,架构的相关部分是包含“附件”的行。

但是,

Solr Cell不会进行OCR。您必须首先使用OCR引擎才能使它们可搜索。

对于OCR,您可以使用由Google开发的OpenSource Engine Tesseract,或者您可能希望查看商业引擎Abbyy。两者都是命令行工具,您可以从您的PHP脚本运行。要从Tesbyract获得与Abbyy相当的结果,您必须进行一些预处理和后处理1。还有云服务,这可能是一个更容易的选择。例如,WisetrendAbbyy Cloud。后者目前处于测试阶段,因此它是免费的,并且已经准备就绪PHP code samples

答案 1 :(得分:3)

就我而言,你在PHP上用OCR做的事情并不多。最好的解决方案是使用云服务 - 一种web api,可让您上传图像并向您发回OCR数据。试试www.ocrsdk.com,它是ABBYY最近推出的基于云的OCR SDK。它现在处于测试阶段,所以它完全免费使用,并且已经准备就绪PHP code samples。免责声明:我工作@ ABBYY

答案 2 :(得分:0)

我不知道任何将PDF转换为文本的软件,但对于MS Word部分,您可以使用JAVA中构建的Apache POI:http://poi.apache.org/,因此您必须执行二进制文件你的PHP文件使它工作。

另一种选择是使用JODConverter(我目前正在使用它)http://code.google.com/p/jodconverter/ 因此,如果Apache POI不起作用,我知道jodconverter会这样做。我正在使用3.0测试版。

在我的PHP代码中,我正在保存上传文件并在tmp目录中的文件上执行转换器二进制文件,这将在tmp目录中创建一个新文件,并从新文件中提取纯文本。 / p>

相关问题