【问题标题】:Use Annotation tool configuration / Automatic annotation service from brat使用 brat 的注释工具配置/自动注释服务
【发布时间】:2020-08-24 09:20:57
【问题描述】:

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

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

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

【问题讨论】:

    标签: named-entity-recognition brat


    【解决方案1】:

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

    文本作为 POST 请求正文中的字节字符串发送到自动注释器 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”,否则应该有错误,或者至少标签显示有问题(如果你生成.ann已经是这种情况了来自自动检测算法的文件,并且具有与关联文本不同的开始和停止)

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

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

    我的意思是我无法让它们工作,但我对 Python 中的 API 和 HTTP 包一点也不熟悉。至少我知道 API 响应的正确格式是什么。

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

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

    GoogleGroup 讨论

    似乎提到不可能从 Automatic Annotation API 发回实体之间的关系并使它们与 BRAT 一起使用。

    我以后可能会试试 :-)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-09
      • 2011-05-16
      • 1970-01-01
      • 2012-06-23
      相关资源
      最近更新 更多