用于将 GROBID TEI XML 序列化为数据类的 Python 库
项目描述
格格不入
用于将 GROBID TEI XML 序列化为数据类的 Python库
安装
用于pip安装:
$ pip install grobid
$ pip install grobid[json] # for JSON serializable dataclass objects
您还可以.whl从发布部分下载该文件:
$ pip install *.whl
用法
客户
为了将学术 PDF 转换为 TEI XML 文件,我们使用了 GROBID 的 REST 服务。特别是processFulltextDocument端点。
from pathlib import Path
from grobid.models.form import Form, File
from grobid.models.response import Response
pdf_file = Path("<your-academic-article>.pdf")
with open(pdf_file, "rb") as file:
form = Form(
file=File(
payload=file.read(),
file_name=pdf_file.name,
mime_type="application/pdf",
)
)
c = Client(base_url="<base-url>", form=form)
try:
xml_content = c.sync_request().content # TEI XML file in bytes
except GrobidClientError as e:
print(e)
base-urlGROBID REST 服务的 URL 在哪里
你可以
https://cloud.science-miner.com/grobid/用来测试
形式
该类Form支持 processFulltextDocument 端点的大多数可选参数。
解析器
如果要序列化 XML 内容,我们可以使用Parser类来创建dataclasses
对象。
并非所有 GROBID 注释指南都得到满足,但合规性是一个目标。见#1。
from grobid.tei import Parser
xml_content: bytes
parser = Parser(xml_content)
article = parser.parse()
article.to_json() # raises RuntimeError if extra require 'json' not installed
在哪里与客户端部分xml_content相同
或者,您可以从文件加载 XML:
from grobid.tei import Parser
with open("<your-academic-article>.xml", "rb") as xml_file:
xml_content = xml_file.read()
parser = Parser(xml_content)
article = parser.parse()
article.to_json() # throws RuntimeError if extra require 'json' not installed
我们使用orjson提供一种to_json将数据类序列化为 JSON 的方法。默认情况下,没有安装 orjson,使用
pip install grobid[json].
执照
麻省理工学院
贡献
欢迎您通过提交 PR 添加缺少的功能,但是,除了 GROBID 注释合规性之外,我不会接受任何请求。
免责声明
这个模块最初是一个大学小组项目的一部分,但是,所有的代码和测试也是由我编写的。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
grobid-0.2.0.tar.gz
(17.2 kB
查看哈希)
内置分布
grobid-0.2.0-py3-none-any.whl
(12.8 kB
查看哈希)