我正在努力训练spacy来识别一个新的实体,而只是这个实体。所以在我的代码中,我加载'en'模型并执行:
nlp = spacy.load('en', create_make_doc=WhitespaceTokenizer)
nlp.entity.add_label("ANIMAL")
我正在做的每个火车文件:
doc = nlp.make_doc(raw_text)
gold = GoldParse(doc, entities=tags)
nlp.tagger(doc)
loss = nlp.entity.update(doc, gold)
完成所有事后,我正在做:
nlp.end_training()
nlp.save_to_directory('...')
现在,我想测试我的模型。我有2段代码: 1.在nlp.save_to_directory之后,我继续加载测试数据:
result = nlp(text)
animals = list(str(i) for i in result.ents)
我打包整个东西并使用pip install,然后在另一个python文件中我正在加载模型:
nlp = spacy.load(model_name)
然后继续使用相同的代码:
result = nlp(text)
animals = list(str(i) for i in result.ents)
在我看来,这两个选项应该检索完全相同的结果,但是我用第一个选项得到了更好的结果...... 有谁知道为什么?
答案 0 :(得分:0)
这是通过将词汇表保存到文件并在加载模型时再次加载来解决的