Как потренировать собственную модель и протестировать ее со вкусом
Я использую приведенный ниже код для обучения уже существующей модели пространства. Тем не менее, я не получаю правильные результаты на тестах:
Чего мне не хватает?
import spacy
import random
from spacy.gold import GoldParse
from spacy.language import EntityRecognizer
train_data = [
('Who is Rocky babu?', [(7, 16, 'PERSON')]),
('I like London and Berlin.', [(7, 13, 'LOC'), (18, 24, 'LOC')])
]
nlp = spacy.load('en', entity=False, parser=False)
ner = EntityRecognizer(nlp.vocab, entity_types=['PERSON', 'LOC'])
for itn in range(5):
random.shuffle(train_data)
for raw_text, entity_offsets in train_data:
doc = nlp.make_doc(raw_text)
gold = GoldParse(doc, entities=entity_offsets)
nlp.tagger(doc)
nlp.entity.update([doc], [gold])
Now, When i try to test the above model by using the below code, I don't get the expected output.
text = ['Who is Rocky babu?']
for a in text:
doc = nlp(a)
print("Entities", [(ent.text, ent.label_) for ent in doc.ents])
My output is as follows:
Entities []
whereas my expected output is as follows:
Entities [('Rocky babu', 'PERSON')]
Can someone please tell me what I'm missing ?
1 ответ
Не могли бы вы повторить с
nlp = spacy.load('en_core_web_sm', entity=False, parser=False)
Если это дает ошибку, потому что у вас не установлена эта модель, вы можете запустить
python -m spacy download en_core_web_sm
сначала в командной строке.
И, конечно же, помните, что для правильного обучения модели вам понадобится еще много примеров, чтобы модель могла обобщать!