Пространственная модель обучения не работает: запуск сценария train_ner не имеет никакого эффекта - PullRequest
0 голосов
/ 18 июня 2019

Я пишу программу, которая использует пространственную модель en_core_web_md для распознавания именованных объектов. Он не идентифицировал все мои объекты правильно: например, были некоторые имена людей и организаций, которые не были признаны в качестве таковых.

Я посмотрел, как тренировать модель, и нашел этот скрипт: https://github.com/explosion/spaCy/blob/master/examples/training/train_ner.py

Я скачал сценарий, поместил его в ту же папку, что и моя программа, заменил их тренировочные данные своими собственными (содержащими имена, которые я хотел, чтобы он распознал) и запустил его с model="en_core_web_md" и output_dir="model" вместо None.

В моем проекте участвуют персонажи видеоигр, поэтому мои тренировочные данные были:

TRAIN_DATA = [
    ("Who is Cave Johnson?", {"entities": [(7, 19, "PERSON")]}),
    ("I work for Aperture Science.", {"entities":[(11, 27, "ORG")]}),
    ("Wallace Breen is CEO of Black Mesa.", {"entities":[(0, 13, "PERSON"), (25, 35, "ORG")]}),

]

Сценарий train_ner выводит ожидаемые результаты. Однако, когда я запускаю мою другую программу, она все равно не распознает «Кейва Джонсона» как PERSON или «Черную мезу» как ORG. Почему скрипт не работает?

Обновление: все еще не работает. Я снова запустил сценарий, без видимого эффекта.

1 Ответ

0 голосов
/ 09 июля 2019

Если взглянуть более подробно на «проблемы» Github, выясняется, что, хотя примерный скрипт дает ему всего пару предложений для его обучения, при запуске скрипта предполагается, что он фактически использует сотни примеров.

Это не ясно для тех, кто не имеет опыта НЛП при чтении документации. Надеюсь, теперь этот вопрос и ответ возникнут, когда люди будут искать его, поэтому другим людям не придется тратить недели на то, чтобы понять, что они делают неправильно.

По сути, мне просто нужно больше предложений.

...