使用注释工具配置/来自brat的自动注释服务

问题描述

我想使用个人API进行命名实体识别(NER),并使用brat进行可视化。似乎小子提供了Automatic annotation tool,但有关其配置的文档很少。

是否有此功能的可用示例?

有人可以解释一下API响应的格式是什么吗?

解决方法

我终于理解了它是如何工作的,感谢 BRAT 的 GoogleGroup 扩散列表中的这个主题

文本作为 POST 请求正文中的字节字符串发送到 Automatic Annotator API,此 API 响应所需的格式 BRAT 是字典的形式,namel(

{
"T1": {
"type": "WhatEverYouWantString",# must be defined in the annotation.conf file
"offsets": [(0,2),(10,12)],# list of tuples of integers that correspond to the start and end position of
"texts": ["to","go"]
}
"T2" : {
"type": "SomeString","offsets":[(start1,stop1),(start2,stop2),...]
"texts":["string[start1:stop1]","string[start2:stop2]",...
}
"T3" : ....
}

然后,您将这本词典放入 JSON 格式,然后将其发送回 BRAT。

注意:

  • “T1”、“T2”、...是必填键(对应于 BRAT 在手动注释过程中生成的 .ann 文件中的 Term 索引)
  • “type”、“offsets”和“texts”键是必需的,否则您会在 BRAT 的日志中遇到一些错误(您可以按照上面链接的 GoogleGroup 线程中的说明查阅这些日志)
  • 值的格式是严格的(“type”得到一个字符串,“offsets”得到一个元组(或列表)或整数列表,“texts”得到一个字符串列表),否则你会得到 BRAT 错误立>

我认为“texts”中的字符串必须对应“offsets”,否则应该会出现错误,或者至少是标签显示有问题(如果您生成{{1 }} 文件来自自动检测算法,并且与相关文本具有不同的开始和停止)

希望能帮到你。今天早上我设法使用 Flask 制作了 API,但我需要构造一个 flask.Response 对象以获得正确的输出格式。此外,在我使用带有 .ann 方法的 flask.request 对象之前,无法捕获从 BRAT 到 Flask API 的传入格式。

另外,我不得不提到我无法使用 BRAT GitHub 中给出的示例:

我的意思是我无法让它们工作,但我对 Python 中的 API 和 HTTP 包根本不熟悉。至少我弄清楚了 API 响应的正确格式是什么。

最后,我不知道如何从 API 中建立实体(即 BRAT 箭头)格式之间的关系

似乎可以处理这样的事情。

GoogleGroup 讨论

似乎提到无法从自动注释 API 发回实体之间的关系并使它们与 BRAT 一起使用。

我以后可以试试:-)