Проблема с добавлением пользовательских объектов в NER SpaCy - PullRequest
1 голос
/ 28 апреля 2020
  • Я добавил новый объект с именем "orgName" в en_core_web_lg, используя https://spacy.io/usage/training#example -new-entity-type
  • Все мои тренировочные данные (26 тыс. Предложений) имеют " orgName "помечено в них.
  • Чтобы справиться с катастрофической проблемой c забвения, я запустил en_core_web_lg для этих 26k необработанных предложений и добавил ORG, PROD, FA C и др. c. сущности в виде меток, а не сталкиваются сталкивающихся сущностей, я создал дубликаты Итак, для предложения A, которое было помечено "orgName", я создал дубликат A2, который имеет ORG, PROD, FA C и др. c. заканчивая примерно 52 тыс. предложений.
  • Я тренировался с использованием 100 итераций.

Теперь проблема в том, что при тестировании модели даже на обучающих предложениях не показывается ORG, PROD , FA C, et c. но отображается только «orgName».

Где, по вашему мнению, проблема?

1 Ответ

2 голосов
/ 29 апреля 2020

В принципе, способ, которым вы пытаетесь решить катастрофу c забыл проблему, переучив ее на старых предсказаниях, кажется мне хорошим подходом.

Однако, если у вас есть дубликат версии одного и того же предложения, но аннотированные по-разному и передавая их в классификатор NER, вы можете спутать модель. Причина в том, что он не только смотрит на положительные примеры, но и явно рассматривает неаннотированные слова как отрицательные случаи.

Так что, если у вас есть «Боб живет в Лондоне», и вы только комментируете «Лондон», то он будет думать, что Боб определенно не NE. Если затем у вас есть второе предложение, в котором вы аннотируете только Боба, он «отучится» от того, что Лондон - NE, потому что теперь он не аннотирован как таковой. Поэтому согласованность действительно важна.

Я бы предложил реализовать более продвинутый алгоритм для разрешения конфликтов. Один из вариантов - всегда брать аннотированный объект с самым длинным Span. Но если промежутки часто совпадают, вам может понадобиться пересмотреть схему маркировки. Какие объекты сталкиваются чаще всего? Я бы взял на себя ORG и OrgName? Вам действительно нужна ORG? Возможно, эти два могут быть «объединены» как один и тот же объект?

...