如何使用我自己的实体创建自定义模型

时间:2016-12-26 16:56:36

标签: nlp stanford-nlp named-entity-recognition

我一直试图找到一些关于如何使用我自己的实体创建自定义模型的参考资料,比如我想从文本中识别体育名称。我该怎么做?

2 个答案:

答案 0 :(得分:1)

stanford的工具通常对几个NLP任务非常有用,但根据我的经验,在opennlp中训练自己的模型要容易得多。如果这是你的选择(你标记了你的问题“stanford-nlp”,但也许你并不仅限于使用它),你可以在这里找到一些非常好的文档:https://opennlp.apache.org/documentation/1.5.3/manual/opennlp.html#tools.namefind.training.tool

答案 1 :(得分:1)

    try {
        propFile = new File(System.getProperty("user.dir") + "/src/edu/stanford/nlp/ie/crf/propfile.prop");
        properties = new Properties();
        properties.load(new FileInputStream(propFile));

        String to = properties.getProperty("serializeTo");

        properties.setProperty("serializeTo", "ner-customModel.ser.gz");
        properties.setProperty("trainFile",System.getProperty("user.dir") + "/src/edu/stanford/nlp/ie/crf/outputTokenized.tsv");
        CRFClassifier crf = new CRFClassifier(properties);
        crf.train();
        String s2 = "apples are apples";

        System.out.println(crf.classifyToString(s2));

        crf.serializeClassifier(System.getProperty("user.dir") + "/src/edu/stanford/nlp/ie/crf/ner-customModel.ser.gz");

    } catch (IOException e) {
        e.printStackTrace();
    }

并在属性文件中声明训练文件和其他属性。 这对我有用:)