用于GROBID风格TEI-XML的解析和转换
项目描述
grobid_tei_xml
:Python解析GROBID风格的TEI-XML结构化文档的库
这是一个简单的Python库,用于解析由GROBID返回的TEI-XML结构化文档,GROBID是一个用于从研究文章PDF中提取文本和书目元数据的机器学习工具。
TEI-XML是一种标准格式,存在其他库用于解析整个文档和与注释文本一起工作。此库专门用于从文档中提取“标题”元数据(例如,标题、作者、期刊名称、卷、期)、以平坦文本形式的内容(全文和正文作为单个字符串,用于搜索索引等),以及结构化引用元数据。
快速入门
grobid_tei_xml
适用于Python 3,仅使用标准库。它不与GROBID HTTP API通信或在其上读取文件,但请参阅以下示例。库已打包在pypi.org。
使用pip
安装,通常在virtualenv
中
pip install grobid_tei_xml
主要入口点是函数process_document_xml(xml_text)
和process_citation_xml(xml_text)
(或process_citation_list_xml(xml_text)
用于多个引用),它们返回Python数据类对象。辅助方法.to_dict()
对于,例如,将对象序列化为JSON非常有用。
使用示例
从磁盘读取XML文件,解析它,并以JSON格式打印到标准输出
import json
import grobid_tei_xml
xml_path = "./tests/files/small.xml"
with open(xml_path, 'r') as xml_file:
doc = grobid_tei_xml.parse_document_xml(xml_file.read())
print(json.dumps(doc.to_dict(), indent=2))
使用 requests
从网络下载PDF,通过HTTP API提交给GROBID,使用 grobid_tei_xml
解析TEI-XML响应,并打印一些元数据字段
import requests
import grobid_tei_xml
pdf_resp = requests.get("https://arxiv.org/pdf/1802.01168v3")
pdf_resp.raise_for_status()
grobid_resp = requests.post(
"https://cloud.science-miner.com/grobid/api/processFulltextDocument",
files={
'input': pdf_resp.content,
'consolidate_Citations': 0,
'includeRawCitations': 1,
},
timeout=60.0,
)
grobid_resp.raise_for_status()
doc = grobid_tei_xml.parse_document_xml(grobid_resp.text)
print("title: " + doc.header.title)
print("authors: " + ", ".join([a.full_name for a in doc.header.authors]))
print("doi: " + str(doc.header.doi))
print("citation count: " + str(len(doc.citations)))
print("abstract: " + doc.abstract)
使用 requests
将“原始”引用字符串提交给GROBID进行提取,使用 grobid_tei_xml
解析响应,并将结构化输出打印到标准输出
import requests
import grobid_tei_xml
raw_citation = "Kvenvolden K.A. and Field M.E. 1981. Thermogenic hydrocarbons in unconsolidated sediment of Eel River Basin, offshore northern California. AAPG Bulletin 65:1642-1646"
grobid_resp = requests.post(
"https://cloud.science-miner.com/grobid/api/processCitation",
data={
'citations': raw_citation,
'consolidateCitations': 0,
'includeRawCitations': 1,
},
timeout=10.0,
)
grobid_resp.raise_for_status()
citation = grobid_tei_xml.parse_citation_xml(grobid_resp.text)
print(citation)
参见
grobid_client_python
:通过HTTP API向GROBID发送请求的Python客户端和CLI工具。返回TEI-XML;可用于与这个库(grobid_tei_xml
)一起使用,将TEI-XML解析为Python对象或JSON。
s2orc-doc2json:AI2的Python库,包括一个用于从GROBID TEI-XML提取书目元数据和(结构化)全文的类似Python库。具有诸如解析参考文献到参考文献条目等优秀功能。
delb:更灵活/强大的TEI-XML文档接口。对于处理结构化文本(正文、摘要等)来说将是一个更好的工具。
"使用Python解析TEI XML文档"(2019):关于将GROBID TEI-XML文件基本解析为Pandas DataFrame的博客文章。
许可证
本库采用许可MIT许可证。请参阅 LICENSE.txt
以获取副本。
项目详情
grobid_tei_xml-0.1.3.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 35c9afb14f6f76100dce5f5815e67ec9fa4122e2f268394e0baf6eafbd8668d8 |
|
MD5 | d86737097a9fae7738301fb7134ee48f |
|
BLAKE2b-256 | 66ee8eb2cd1253154de2b0dbbe5ed3a5b0963589b74bbe5f8a55b1137093d816 |
grobid_tei_xml-0.1.3-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 022fdf54dbd067b520c1effe3c1a1f2ac248492ea310627e9462757748cb461b |
|
MD5 | eee968e074d18e757f7f943f26132965 |
|
BLAKE2b-256 | d0f00ac75a2aca1bb89989a0944243cd130ec83683f5bbd941a9c45de53d6033 |