Я пытаюсь использовать функцию «pre-train» в Spacy для задачи NER, поэтому вот что я пытался сделать (я все еще пытаюсь ее использовать),
Шаг 1: Я начал с инициализации модели с помощью en_core_web_lg. Затем я сохранил эту модель на диск и протестировал ее NER на нескольких строках, чтобы увидеть, распознает ли она теги в этих тестовых строках.(Записал пропущенные теги)
Шаг 2: Затем я создал файл .jsonl с новыми данными для обучения (около 20 новых строк, я хотел посмотреть, какие возможности модели даныновые данные вокруг объекта (игнорируемые теги, найденные ранее) смогут правильно идентифицировать теги после выполнения обучения переносу).Таким образом, используя этот файл .jsonl и файл, который я сохранил ранее, я использовал для обучения команду «spacy pre-train», что позволило мне создать файл tobin2vec .bin (model999.bin).
Шаг 3: Далее я создал функцию, которая принимает местоположение ранее сохраненной модели (модель, сохраненную на шаге 1) и местоположение token2vec (файл model999.bin, полученный на шаге 2).Внутри функции она загружает модель> создает / получает канал> отключает остальные файлы> использует (pipe_name) .model.tok2vec.from_bytes (file_.read ()) для чтения из model999.bin и трансляции полученных векторов в базовую модель.
Но когда я запускаю эту функцию, я получаю эту ошибку: ValueError: could not broadcast input array from shape (96,3,384) into shape (96,3,480)
(я загрузил весь блокнот здесь: [https://github.com/pratikdk/ner_test/blob/master/base_model_contextual_TF.ipynb]).
Для предварительной подготовки я использовал эту функцию python -m spacy pre-train ub.jsonl model_saves w2s
Вот 20 линий, которые я пробовал тренировать поверх базовой модели [https://github.com/pratikdk/ner_test/blob/master/ub.jsonl]
Что я тут не так делаю?Пожалуйста, не могли бы вы также указать исправление, я уверен, что многим потребуется понимание этого.
Среда
- Операционная система: CentOS
- Используемая версия Python: 3.7.3
- Используемая версия spaCy: 2.1.3
- Информация об окружающей среде: Anaconda Jupyter Lab