我正在使用 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 库的新手,知道如何转换火车数据吗?或者有什么想法可以使用哪个库?
谢谢。
答案 0 :(得分:0)
对于简单的 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 格式的数据就很简单了。