Предупреждение: [W030] Некоторые объекты не удалось выровнять в тексте.
TRAIN_DATA = [
("XYZxyzg hat die beste Camera für Selfies", {"entities": [(0, 7, "BRAND"), (23, 28, "CAMERA")]}),
]
При обучении я продолжаю получать ошибку в этой строке:
serWarning: [W030] Some entities could not be aligned in the text "XYZxyzg hat die beste Camera für Selfie" with entities "[(0, 7, 'BRAND'), (23, 28, 'CAMERA')]". Use `spacy.gold.biluo_tags_from_offsets(nlp.make_doc(text), entities)` to check the alignment. Misaligned entities ('-') will be ignored during training.
gold = GoldParse(doc, **gold)
Что не так с моими индексами? Следует ли исключать пробелы? Я тоже пробовал, но, похоже, не работает. Как я могу использовать
spacy.gold.biluo_tags_from_offsets(nlp.make_doc(text), entities)
чтобы проверить индексы, как предлагает предупреждение?
2 ответа
spacy.gold.biluo_tags_from_offsets
устарело, я считаю.
Вы можете заменитьspacy.gold import biluo_tags_from_offsets
сspacy.training import offsets_to_biluo_tags
Из вашего сообщения:
TRAIN_DATA = [
("XYZxyzg hat die beste Camera für Selfies", {"entities": [(0, 7, "BRAND"), (23, 28, "CAMERA")]}),
]
Смещения объекта должны быть выровнены по границам токена. Вы можете начинать / заканчивать объект в середине токена. В вашем случае похоже закралась небольшая ошибка, и я думаю, что смещения второй сущности должны быть
(22, 28, "CAMERA")
вместо.