从 Inception Annotation 引擎导出带有标签的文本序列

问题描述 投票:0回答:1

我正在使用 INCEpTION (https://inception-project.github.io/) 来注释我的法律文件。有没有办法可以导出我标记的原始文本序列及其标签名称,而不是 Inception 中提供的任何导出格式?

我这里的用例是创建一个数据集,其中我将文本中的句子注释为文本序列(句子边界检测对于法律领域没有很好地解决),以及每个句子的自定义标签。

理想的导出格式是,在 txt 文件的每一行: 文字标签

我希望实现的数据格式与您在这里看到的类似:https://github.com/Law-AI/semantic-segmentation/blob/master/data/text/1953_L_1.txt

nlp annotations inception
1个回答
1
投票

假设您在 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
    文件
  • a
    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 项目。

© www.soinside.com 2019 - 2024. All rights reserved.