我训练了我的NER模型,但是我不确定如何在它们之间集成切换(例如,如果使用中文,则使用chi-ner-name.bin,如果使用俄语,则使用rus-ner-name.bin) 。如果英语代码为:
try {
in_token = assetManager.open("en-token.bin");
TokenizerModel tokenmodel = new TokenizerModel(in_token);
TokenizerME tokenizer = new TokenizerME(tokenmodel);
String[] tokens = tokenizer.tokenize(nlp_text);
in_gems = assetManager.open("en-ner-names.bin");
TokenNameFinderModel model_name = new TokenNameFinderModel(in_gems);
NameFinderME nameFinder_name = new NameFinderME(model_name);
Span[] nameSpans1 = nameFinder_name.find(tokens);
for (Span s : nameSpans1) {
for (int index = s.getStart(); index < s.getEnd(); index++) {
name_output.setText(tokens[index] + " ");
}
}
} catch (Exception ex) {
Log.e("NLP","message: " + ex.getMessage(),ex);
}
我是否只重复其他语言模型的代码?应该有更短而有效的方法,不是吗? 另外,我不确定是否必须在训练有素的模型之上实现LanguageDetector API?
对于像我这样的新手,Apache OpenNLP文档不够说明。有人可以给我指导,还是可以指点教程或其他资源。谢谢!