我一直在尝试找到一些有关如何使用我自己的实体创建自定义模型的参考材料,例如我想从文本中识别运动名称。?
斯坦福大学的工具通常在多个NLP任务上都可以很好地工作,但是根据我的经验,在OpenNLP中训练自己的模型要容易得多。如果这是您的选择(您将问题标记为" Stanford-nlp",但也许您不仅限于使用它),您可以在此处找到一些很好的文档:https://opennlp.apache.org/documentation/1.5.3/manual/opennlp.html#tools.namefind.training.tool
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();
}
并在属性文件中声明培训文件和其他属性。这对我有用:)