Создайте объект Doc с помеченными данными смещения - PullRequest
0 голосов
/ 22 мая 2019

У меня есть помеченный набор данных в формате с пространственным смещением .

Например: ('I love Berlin!', {'entities': [(7, 13, 'CITY')]})

Моя цель - преобразовать формат в CONLL формат столбца.

e.g.: I O love O Berlin CITY ! O

Есть ли способ создать пространственный объект Doc, используя только помеченные данные в формате смещения?Если я смогу создать объект Doc, мне будет легко достичь своей цели, используя этот код .

Заранее спасибо

1 Ответ

0 голосов
/ 01 июня 2019

Возможно, вы захотите проверить GoldParse служебные функции , которые могут преобразовывать смещения объектов в теги BILUO или объекты spaCy Span.Например, помощник biluo_tags_from_offsets получает объект Doc и список смещений сущностей и возвращает теги BILUO для токенов.Например:

from spacy.lang.en import English  # Or whichever language you need
from spacy.gold import biluo_tags_from_offsets

nlp = English()

YOUR_DATA = [
    ('I love Berlin!', {'entities': [(7, 13, 'CITY')]})
]

for text, annotations in YOUR_DATA:
    offsets = annotations["entities"]
    doc = nlp(text)
    tags = biluo_tags_from_offsets(doc, offsets)
    print([token.text for token in doc], tags)
['I', 'love', 'Berlin', '!'] ['O', 'O', 'U-CITY', 'O']

Это уже очень близко к результату, который вы ищете.Если метка не O, вы можете разделить на -, и у вас есть метка сущности для токена в этой позиции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...