【发布时间】:2018-10-28 18:29:15
【问题描述】:
您好已经提到了this、this、this 和 this,但仍然发现很难构建自定义名称查找器模型。 代码如下:
public class CustomClassifierTrainer {
private static final TokenNameFinderFactory TokenNameFinderFactory = null;
static String onlpModelPath = "/Users/user/eclipse-workspace/openNLP/OpenNLP_models/en-ner-asiannames.bin";
// training data set
static String trainingDataFilePath = "/Users/user/eclipse-workspace/openNLP/trainingData/asiannames.txt";
public static void main(String[] args) throws IOException {
Charset charset = Charset.forName("UTF-8");
ObjectStream<String> lineStream =
new PlainTextByLineStream(new FileInputStream(trainingDataFilePath), charset);
ObjectStream<NameSample> sampleStream = new NameSampleDataStream(lineStream);
TokenNameFinderModel model;
try {
model = NameFinderME.train("en", "asian.person", sampleStream, TrainingParameters.defaultParams(),
TokenNameFinderFactory nameFinderFactory);
}
finally {
sampleStream.close();
}
BufferedOutputStream modelOut = null;
try {
modelOut = new BufferedOutputStream(new FileOutputStream(onlpModelPath));
model.serialize(modelOut);
} finally {
if (modelOut != null)
modelOut.close();
}
}
}
我在尝试执行行时不断收到错误:
ObjectStream<String> lineStream = new PlainTextByLineStream(new FileInputStream(trainingDataFilePath), charset);
要求我转换参数 1. 当我将其更改为
ObjectStream<String> lineStream = new PlainTextByLineStream((InputStreamFactory) new FileInputStream(trainingDataFilePath), charset);
然后我得到一个运行时错误,说你不能投射这个。这是我投射时的错误Exception in thread "main" java.lang.ClassCastException: class java.io.FileInputStream cannot be cast to class opennlp.tools.util.InputStreamFactory (java.io.FileInputStream is in module java.base of loader 'bootstrap'; opennlp.tools.util.InputStreamFactory is in unnamed module of loader 'app')
at openNLP.CustomClassifierTrainer.main(CustomClassifierTrainer.java:35)
第二个问题是:
try {
model = NameFinderME.train("en", "asian.person", sampleStream, TrainingParameters.defaultParams(),
TokenNameFinderFactory nameFinderFactory);
}
给出语法错误。不知道这里有什么问题。任何帮助将不胜感激,因为我已经尝试了上述链接上的所有代码 sn-ps。
问候,
【问题讨论】:
-
当您询问错误时,请始终发布完整且准确的错误。
-
@JBNizet 我添加了错误。
标签: java opennlp custom-model-binder