2016-10-24 26 views
2

因此,无论何时我尝试加载先前保存的SpaCy NER模型,我都会得到一个核心转储。在SpaCy v1.1.2中加载先前保存的NER模型

if os.path.isfile(model_path): 
    ner.model.load(model_path) 
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) 
     ner.update(doc, gold) # <- Core dump occurs here 

转储报告:

7fb1b7459000-7fb1b7499000 rw-p 00000000 00:00 0 [1] 23967 abort (core dumped) 

我在做/加载它错了吗?

回答

1

编辑: 原来我并不需要加载模式,以更新它,我需要做的是去除

if os.path.isfile(model_path): 
    ner.model.load(model_path) 

并添加

ner.model.dump(model_path) 

到底像这样:

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) 
    ner.update(doc, gold) 
ner.model.dump(model_path) 

为了它附加到以前保存的数据。都好!

1

嗯。不过,这里可能还有一个bug。显然你应该可以写入预先加载的模型!

+0

这就是我的想法,但显然它附加到文件? –