Я пытаюсь обучить новую модель в SpaCy с помощью пользовательских сущностей, и у меня возникают проблемы при ее запуске.
У меня только один канал (нерв), и я добавляю все свои типы сущностей в качестве меткик нему.
Я понял, что добавление большого количества различных меток (~ 219 меток) к нервной трубе приводит к сбою при первом nlp.update
(Process finished with exit code -1073740791 (0xC0000409)
)
I 'm работает под управлением версии Spacy: 2.0.12 на ноутбуке с 16 ГБ ОЗУ в Windows 10 с Python 3.7.Любая идея, почему он падает при первом выполнении nlp.update, чем больше меток я добавляю, и как я могу предотвратить это?Я попытался использовать только ~ 100 ярлыков, и все работает нормально.
Вот мой код:
def __train_model(self, spacy_model, entity_types):
nlp = spacy.blank("en")
ner = nlp.create_pipe("ner")
nlp.add_pipe(ner)
for entity_type in list(entity_types):
ner.add_label(entity_type)
optimizer = nlp.begin_training()
# Start training
for i in range(20):
losses = {}
index = 0
random.shuffle(spacy_model)
for statement, entities in spacy_model:
nlp.update([statement], [entities], sgd=optimizer, losses=losses, drop=0.5)
return nlp
spacy_model:
[
('Simply put I see no other conclusion than Comcast has actively blocked our Smart TVs from accessing Netflix on purpose.', {'entities': [(42, 49, 'ORGANIZATION:SERVICE_PROVIDER:COMMUNICATIONS'), (75, 80, 'DEVICE:COMMUNICATIONS:TV:FEATURE'), (100, 107, 'ORGANIZATION:SERVICE_PROVIDER:COMMUNICATIONS')]})
...
]
РЕДАКТИРОВАТЬ: я пытался на виртуальной машине Ubuntu 18.04 с 24 ГБ оперативной памяти и 2 ядра и обнаружил следующую ошибку:
*** stack smashing detected ***: <unknown> terminated
Aborted (core dumped)
EDIT2: здесь исправлено: https://github.com/explosion/spaCy/issues/2800#issuecomment-425057478