簡體   English   中英

將 NER 訓練數據轉換為 Spacy 訓練數據格式

[英]Converting NER training data to Spacy training data format

我正在使用 Spacy 創建印度尼西亞 NER model。 我正在使用來自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 庫的新手,知道如何轉換火車數據嗎? 或者任何想法使用哪個庫?

謝謝你。

對於簡單的 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 格式數據就很簡單了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM