我正在使用 INCEpTION (https://inception-project.github.io/) 来注释我的法律文件。有没有办法可以导出我标记的原始文本序列及其标签名称,而不是 Inception 中提供的任何导出格式?
我这里的用例是创建一个数据集,其中我将文本中的句子注释为文本序列(句子边界检测对于法律领域没有很好地解决),以及每个句子的自定义标签。
理想的导出格式是,在 txt 文件的每一行: 文字标签
我希望实现的数据格式与您在这里看到的类似:https://github.com/Law-AI/semantic-segmentation/blob/master/data/text/1953_L_1.txt
假设您在 INCEpTION 中配置了一个名为
Segment
的跨层(翻译为内部名称 webanno.custom.Segment
),并且您在 INCEpTION 的注释页面上将名为 my-text.txt
的文档的几个句子注释为 Segment
。我们进一步假设 Segment
层配置为具有名为 label
的字符串功能,您可以在其中放置 Facts
、Ratio of the decision
和 Precedent
等值。
现在,您可以通过UIMA CAS XMI (XML 1.0)中注释页面操作栏中的导出按钮导出单个注释文档。您得到的是一个 ZIP 文件,其中包含两个文件:
my-text.xmi
文件TypeSystem.xml
包含注释方案的文件假设您安装了 Python 3,您现在可以安装 DKPro Cassis,一个可以帮助您使用上述两个文件的库。
pip install dkpro-cassis
现在,您可以使用 Cassis 编写一个简短的 Python 脚本,该脚本读取注释并以您想要的格式输出它们:
from cassis import *
with open('TypeSystem.xml', 'rb') as f:
typesystem = load_typesystem(f)
with open('my-text.xmi', 'rb') as f:
doc = load_cas_from_xmi(f, typesystem=typesystem)
with open('output.txt', 'w') as f:
for segment in doc.select('webanno.custom.Segment'):
f.write(f"{segment.get_covered_text()}\t{segment.label}\n")
INCEPTION 网站的Python 示例部分上有一个类似的可立即运行的示例。
免责声明:我正在从事 INCEpTION 项目。