StanfordNLP默认模型+自定义NER模型

时间:2016-10-29 13:34:29

标签: stanford-nlp

如何将Stanford NLP(english.all.3class.distsim.crf.ser.gz)提供的默认模型与我的自定义模型(ner-model.ser.gz)结合使用?我想将丰田视为“PERS'实体和句子的其余部分作为默认' O'实体。它必须被认为是一个PERS'实体由发动机用于后来的用法(Sentiment / Concept)由StanfordNLP。

我已按照http://nlp.stanford.edu/software/crf-faq.html#a中的说明训练了自定义模型。我使用以下代码来组合分类器:

        String serializedClassifier = "ner-model.ser.gz";
        String serializedClassifier2 = "edu/stanford/nlp/models/ner/english.all.3class.distsim.crf.ser.gz";
try {
        NERClassifierCombiner classifier = new NERClassifierCombiner(false,
                false, serializedClassifier, serializedClassifier2);
        String ss = "Toyota is not an organisation, it is a person's name.";
        System.out.println("---");
        List<List<CoreLabel>> out = classifier.classify(ss);
        for (List<CoreLabel> sentence : out) {
            for (CoreLabel word : sentence) {
                System.out.println(word.word() + '('
                        + word.get(AnswerAnnotation.class) + ')');
            }
            System.out.println();
        }

    } catch (ClassCastException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

结果如下:

Toyota(PERS)
is(O)
not(PERS)
an(O)
organization(PERS)
,(O)
it(PERS)
is(O)
a(PERS)
person(O)
's(PERS)
name(O)
.(PERS)

如果我只使用默认模型(ner-model.ser.gz),我会得到

Toyota(ORGANIZATION)
is(O)
not(O)
an(O)
organization(O)
,(O)
it(O)
is(O)
a(O)
person(O)
's(O)
name(O)
.(O)

提前感谢您的帮助。

0 个答案:

没有答案