spaCy NER培训新模型问题

时间:2017-10-17 11:09:38

标签: python spacy

我正在努力训练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)
  1. 我打包整个东西并使用pip install,然后在另一个python文件中我正在加载模型:

    nlp = spacy.load(model_name)

  2. 然后继续使用相同的代码:

    result = nlp(text) 
    animals = list(str(i) for i in result.ents)
    

    在我看来,这两个选项应该检索完全相同的结果,但是我用第一个选项得到了更好的结果...... 有谁知道为什么?

1 个答案:

答案 0 :(得分:0)

这是通过将词汇表保存到文件并在加载模型时再次加载来解决的