将NER训练数据转换为Spacy训练数据格式

2024-06-09 10:54:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Spacy创建一个印度尼西亚NER模型。我正在使用来自https://raw.githubusercontent.com/yohanesgultom/nlp-experiments/master/data/ner/training_data.txt的训练数据

使用此标记格式的上述培训数据:

Sementara itu Pengamat Pasar Modal <ENAMEX TYPE="PERSON">Dandossi Matram</ENAMEX> mengatakan,

我想将此培训数据转换为Spacy格式,即:

[('Sementara itu Pengamat Pasar Modal Dandossi Matram mengatakan,',{"entities:"([35, 51, 'PERSON'])})]

我对Python库还是新手,知道如何转换火车数据吗?或者有没有使用哪个图书馆的想法

多谢各位


Tags: 数据dataspacy格式personitunermodal
1条回答
网友
1楼 · 发布于 2024-06-09 10:54:10

对于简单的XML类型注释,可以使用BeautifulSoup。下面是一个略为简单的标记示例:

from bs4 import BeautifulSoup

raw = "I went to <PLACE>Tokyo 3</PLACE> last year."
soup = BeautifulSoup(raw, features="html.parser")

out = ""
tags = []
idx = 0
for el in soup:
    text = el
    if hasattr(el, "text"):
        # it's a tag, save it
        text = el.text
        start = idx
        end = idx + len(el.text)
        tags.append( (el.name, start, end) )

    out += text
    idx += len(text)

print(out)
for tag in tags:
    print(tag[0], out[tag[1]:tag[2]], sep="\t")

一旦获得了这个示例代码给出的字符跨度,获取spaCy格式数据就很简单了

相关问题 更多 >