答案 0 :(得分:1)
到目前为止你尝试了什么?我没有仔细查看您链接到的示例,但我非常确定您可以通过修改该示例来获得所需的位置。 无论如何,这并不是很困难:
InputStream modelIn = null;
POSModel POSModel = null;
try{
File f = new File("<location to your tagger model here>");
modelIn = new FileInputStream(f);
POSModel = new POSModel(modelIn);
POSTaggerME tagger = new POSTaggerME(POSModel);
SimpleTokenizer tokenizer= new SimpleTokenizer();
String tokens[] = tokenizer.tokenize("This is a sample sentence.");
String[] tagged = tagger.tag(tokens);
for (int i = 0; i < tagged.length; i++){
if (tagged[i].equalsIgnoreCase("nn")){
System.out.println(tokens[i]);
}
}
}
catch(IOException e){
throw new BadRequestException(e.getMessage());
}
您可以在此处下载代码模型:http://opennlp.sourceforge.net/models-1.5/
我应该说不推荐使用SimpleTokenizer。您可能希望看一下更复杂的一个,但根据我的经验,来自OpenNLP的更花哨的也更慢(并且通常令人难以接受的只是令牌化)。