官方文档:Introduction - GROBID Documentation
GROBID(或GROBID)是GeneRation Of BIbliographic Data。
GROBID是一个机器学习库,用于提取、解析和重构原始文档(如PDF),将其转换为结构化的XML/TEI编码文档,特别关注技术和科学出版物。最初的开发始于2008年,当时只是一个爱好。2011年,该工具已经以开源的形式提供。GROBID的工作从一开始就作为副业项目稳定下来,预计将继续下去。
根据官方英文文档 Install GROBID - GROBID Documentation
我们执行下列操作进行程序安装。
进入GitHub grobid下载Release版本
完成解压后 进入解压文件的目录
命令行输入 gradlew clean install
JAVA_HOME路径无效 检查后发现分号的存在
删除分号后 问题解决。
开始自动安装相关的jar文件。
安装完成后 出现提示
运行方式在文档GROBID service - GROBID Documentation中
在命令行输入gradlew run 开始运行程序
并不需要加载至100% 当看见进度条不动时 前往浏览器测试API
默认端口是 http://localhost:8070/
进入后我们可以看见如下的界面:
界面较为简单 以PDF为例 我向其上传了一篇pdf 解析其头部信息 正常出现结果
不愿使用Web端直接解析PDF的话 则需要通过API的调用了。
事实上使用API也是开发者提倡的 毕竟使用Web端不能够进行批量处理
那么 对于成千上万的PDF文件 这样的处理方式就太低效了。
官网提供了三类API的调用接口 包括Python Java Node.js 我选择使用Python。
在此下载项目文件 https://github.com/kermitt2/grobid-client-python
进行解压 其中存在多个py文件
以及一些测试案例
我们阅读其提供的readme.md文件,总结如下
官方文档内提供了两种使用该客户端的方式
1.命令行
进入cmd命令行环境
进入python客户端的路径
cd grobid_client_python
初始化环境
python3 setup.py install
执行解析命令 需要给定输入路径,输出路径与解析方式。
grobid_client.py --input C:/Users/*/Desktop/in --output C:/Users/*/Desktop/out processFulltextDocument
2.python脚本
或是直接运行如下代码(注意包与包直接的相对位置)
能够读取resources/in下的所有pdf文件
在resources/out中生成相应的xml文件
from grobid_client.grobid_client import GrobidClient
if __name__ == "__main__":
client = GrobidClient(config_path="./config.json")
client.process("processFulltextDocument", "resources/in", output="resources/out/", consolidate_citations=True, tei_coordinates=True, force=True)
使用Windows系统访问Web端会出现如下的报错
通过在github中进行查询 并重新看了一小时的官方文档 发现该程序已不再支持Windows平台
程序的开发者在社区讨论时说支持三个平台对于他们来说工作量过大。
官方文档:
Windows related issues
Grobid is developed and tested on Linux. macOS is also supported, although some components might behave slighly different due to the natural incompatibility of Apple with the rest of the world and the availability on some proprietary fonts on this platform.
Windows, unfortunately, is currently not anymore supported, due to lack of experience and time constraints. We recommend Windows users to use the Grobid Docker image (documented here) and call the system via API using one of the various grobid clients.
Windows相关问题
Grobid是在Linux上开发和测试的。macOS也被支持,尽管由于苹果与世界其他地方的自然不兼容以及该平台上的一些专有字体的可用性,一些组件的行为可能略有不同。
不幸的是,由于缺乏经验和时间限制,目前不再支持Windows。我们建议Windows用户使用Grobid Docker映像(这里有文档),并使用各种Grobid客户端之一通过API调用系统。
开发者回复:
现场链接: [BAD_INPUT_DATA] PDF to XML conversion failed with error code: 99 · Issue #166 · kermitt2/grobid · GitHub
grobid is not supported to work on Windows. Unfortunately three platforms are too many for us, I recommend you to run it using docker.
grobid不支持在Windows上工作。不幸的是,三个平台对我们来说太多了,我建议您使用docker运行它。
1.购置一台苹果电脑
2.通过Docker / VMware Workstation等程序构建如 Linux 的虚拟环境
参考博文GROBID库:PDF to XML conversion failed with error code: 99报错解决
3.寻找功能相似 能够提取解析PDF的机器学习库。