我想使用personnal API进行命名实体识别(NER),并使用brat进行可视化。brat似乎提供了一个Automatic annotation tool,但是关于它的配置的文档却很少。
是否有可用的此功能的工作示例?
有人能给我解释一下API的响应格式是什么吗?
发布于 2021-05-06 02:39:55
多亏了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。
注意:
.ann
文件中的索引)类型键“.ann
”、"offsets“和"texts”是必需的,否则您会在BRAT的日志中看到一些错误(您可以参考上面链接的GoogleGroup线程中解释的这些日志)我认为“文本”中的字符串必须与“偏移量”相对应,否则就会出现错误,或者至少是标签的显示有问题(如果您通过自动检测算法生成.ann
文件,并且与关联的文本具有不同的开始和停止,就会出现这种情况)。
我希望它能帮上忙。今天早上,我设法使用Flask编写了该应用程序接口,但我需要构造一个flask.Response
对象来获得正确的输出格式。此外,在我使用带有request.get_body()
方法的flask.request
对象之前,无法捕获从BRAT到Flask API的传入格式。
此外,我必须指出,我无法使用BRAT GitHub中给出的示例:
我的意思是我不能让它们工作,但我对Python中的API和HTTP包一点也不熟悉。至少我知道了API响应的正确格式是什么。
最后,我不知道如何从API中创建实体之间的关系(即BRAT箭头)格式
对这样的事情似乎很管用。
关于GoogleGroup的讨论
似乎提到,不可能从自动注释API发送回实体之间的关系,并使它们与BRAT一起工作。
我稍后可能会尝试:-)
https://stackoverflow.com/questions/63558127
复制相似问题