Как обучить совершенно новые сущности вместо предварительно обученных сущностей, используя модель Spacy NER? - PullRequest
0 голосов
/ 20 января 2020

Как мне перенести обучение, т.е. взять предварительно обученную модель Spacy NER и заставить ее изучать новые сущности, указанные c для моего варианта использования?

Для этого у меня есть 100 новых аннотированных обучающих образцов. Новая модель переподготовки должна предсказывать только новые объекты, а не какие-либо из существующих объектов в предварительно обученной пространственной модели. Простое добавление / обновление новых объектов в существующих моделях и игнорирование старых объектов во время прогнозирования не имеет смысла.

Этот официальный пример описывает, как добавлять новые сущности в существующие предварительно обученные сущности, но это не то, что я хочу. У меня также есть очень мало примеров, например, 100, чтобы полностью построить новую модель NER с нуля.

Редактировать: я хочу идентифицировать все номера счетов в неструктурированном документе.

Пример ("Мне бы хотелось изменить адрес, соответствующий моей учетной записи 12345. Пожалуйста, дайте мне знать, как это сделать. "[34, 39, 'accountnumber'])

Ответы [ 2 ]

2 голосов
/ 21 января 2020

Вы упоминаете, что хотите предсказывать только новые сущности, а не старые. Таким образом, нет оснований начинать с предварительно обученной модели NER. Функции, изученные для других типов объектов (которые вам не нужны), в любом случае не будут использоваться / переноситься на ваш новый тип объектов. Так что вам просто нужно начать обучение модели с нуля.

Вы упомянули, что у вас есть только несколько примеров обучения (100), поэтому (как вы упоминаете) будет достаточно сложно достичь достаточно высокой точности. , Возможно, вы могли бы сначала выполнить шаг сопоставления на основе правил , а затем вручную объединить совпадения с этого шага сопоставления, чтобы быстрее увеличить данные тренировки.

1 голос
/ 20 января 2020

Для вашего случая использования вы добавляете новый тип сущности, поэтому не должно быть путаницы с существующими типами сущностей. Если вы называете свою новую сущность «accountnumber», вы сможете использовать обучающий скрипт, который вы связали, для обучения модели.

Для фазы извлечения используйте код в документации , но просто отфильтруйте «accountnumber» в результатах (т. Е. Поле ent.label_) и игнорируйте другие существующие сущности.

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