我想使用openNLP检测句子上的日期。它很容易使用id除了myslft训练之外还有一个现有的模型。任何人都可以指导我如何在java中做到这一点。
答案 0 :(得分:2)
Date name finder model
Tokenizer model
。因为Name Finder Model的输入应该是标记化数组加载两个模型
InputStream modelIn1 = new FileInputStream("en-ner-date.bin");
InputStream modelIn2 = new FileInputStream("en-token.bin");
创建Tokenizer模型和NamefinderModel
try {
TokenizerModel model1 = new TokenizerModel(modelIn2);
TokenNameFinderModel model2 = new TokenNameFinderModel(modelIn1);
}
catch (IOException e) {
e.printStackTrace();
}
finally {
if (modelIn1 != null) {
try {
modelIn1.close();
}
catch (IOException e) {
}
}
if (modelIn2 != null) {
try {
modelIn2.close();
}
catch (IOException e) {
}
}
}
然后加载TokenizerME和NameFinderME
Tokenizer tokenizer = new TokenizerME(model1);
NameFinderME nameFinder = new NameFinderME(model2);
然后从tokenizer模型中获取令牌
String tokens[] = tokenizer.tokenize("An input sample sentence.");
然后将此令牌数组作为参数发送到取景器模型
Span nameSpans[] = nameFinder.find(tokens);
这会将其转换为预测日期数组作为字符串
String[] array=Span.spansToStrings(nameSpans,tokens);