我想使用个人 API 进行命名实体识别 (NER),并使用brat进行可视化。似乎小子提供了一个自动注释工具,但关于其配置的文档很少。
是否有此功能的可用工作示例?
有人可以解释一下 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。
笔记 :
.ann
BRAT 在手动注释时生成的文件中的 Term 索引)我认为“文本”中的字符串必须对应于“偏移量”,否则应该有错误,或者至少标签显示有问题(如果您.ann
从自动检测算法生成文件,情况已经如此并且具有与相关文本不同的开始和停止)
我希望它有所帮助。今天早上我设法使用Flask制作了 API ,但我需要构造一个flask.Response
对象来获得正确的输出格式。此外,在我使用带有方法的flask.request
对象之前,无法捕获从 BRAT 到 Flask API 的传入格式。request.get_body()
另外,我不得不提一下,我无法使用 BRAT GitHub 中给出的示例:
我的意思是我不能让它们工作,但我对 Python 中的 API 和 HTTP 包一点也不熟悉。至少我弄清楚了 API 响应的正确格式是什么。
最后,我不知道如何从 API 中建立实体之间的关系(即 BRAT 箭头)格式,虽然
似乎适用于这样的事情。
GoogleGroup 讨论
似乎提到不可能从自动注释 API 发回实体之间的关系并使它们与 BRAT 一起使用。
我可以稍后再试:-)