Это простой код, который взят из учебной документации (более или менее).Как только я обучаю модель NER, используя приведенный ниже обучающий код, я использую nlp(sentence).ents
внутри цикла for, чтобы получить именованные сущности.Как видите, я использовал пустую модель spacy.blank('en')
, потому что я добавляю новые объекты.Но никакие объекты не обнаружены в тестовом наборе.
import spacy
import random
from spacy.util import compounding
from spacy.util import minibatch
def get_batches(train_data, model_type):
max_batch_sizes = {'tagger': 32, 'parser': 16, 'ner': 16, 'textcat': 64}
max_batch_size = max_batch_sizes[model_type]
if len(train_data) < 1000:
max_batch_size /= 2
if len(train_data) < 500:
max_batch_size /= 2
batch_size = compounding(1, max_batch_size, 1.001)
batches = minibatch(train_data, size=batch_size)
return batches
nlp = spacy.blank('en')
nlp.vocab.vectors.name = 'blank_vector'
optimizer = nlp.begin_training()
for i in range(20):
random.shuffle(TRAIN_DATA)
batches = get_batches(TRAIN_DATA, 'ner')
for batch in batches:
texts, annotations = zip(*batch)
nlp.update(texts, annotations, drop=0.5, sgd=optimizer)
# for text, annotations in TRAIN_DATA:
# nlp.update([text], [annotations], drop=0.5, sgd=optimizer)
nlp.to_disk('model')
Как можно проанализировать модель, созданную в просторном режиме? Я пытался понять некоторые изэто, глядя на model
, который был создан nlp.to_disk('model')
.Но, к сожалению, я не знал, как добавить необходимую информацию, которая мне нужна.
Мои требования: Учитывайте проценты, например, [20%, 0,5% и т. Д.], И суммы в долларах, например, [$ 100, 100долларов и т. д.] такие случаи будут восприняты как ДЕНЬГИ, ПРОЦЕНТ предварительно обученным NER, но они нужны мне для обнаружения объектов, основанных на использовании, таких как ['HOME_LOAN_INTEREST_RATE', 'CAR_LOAN_INTEREST_RATE' и т. д.].Теперь моя проблема все еще может заключаться в том, что все суммы в долларах отсутствуют в словаре.Если это так, то как мне решить эту проблему?
Любая помощь по этому вопросу будет принята с благодарностью.