Java OpenNLP извлекает все существительные из предложения

Я использую Java8 и OpenNLP. Я пытаюсь извлечь все существительные слова из предложений.

Я пробовал этот пример, но он извлекает все существительные фразы ("NP"). Кто-нибудь знает, как я могу просто извлечь отдельные существительные слова?

Спасибо

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 также намного медленнее (и вообще недопустимо медленны для простого токенизации).

Другие вопросы по тегам