2017-02-21 26 views
2

Недавно я обнаружил парсер Stanford NLP, и это выглядит довольно удивительно. В настоящее время у меня есть рабочий экземпляр этого проекта, но мы сталкиваемся с указанными ниже проблемами.Java, Stanford NLP: Извлечение конкретных речевых меток из парсера

  1. Как я могу разобрать текст, а затем извлечь только определенные речевые метки из проанализированных данных, например, как можно извлечь только NNPS и PRP из предложения.
  2. Наша платформа работает на английском и немецком языках, поэтому всегда есть возможность, что текст написан на английском или немецком языке. Как я могу разместить этот сценарий. Спасибо.

Код:

private final String PCG_MODEL = "edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"; 

    private final TokenizerFactory<CoreLabel> tokenizerFactory = PTBTokenizer.factory(new CoreLabelTokenFactory(), "invertible=true"); 

public void testParser() { 
    LexicalizedParser lp = LexicalizedParser.loadModel(PCG_MODEL); 
     String sent="Complete Howto guide to install EC2 Linux server in Amazon Web services cloud."; 
     Tree parse; 
     parse = lp.parse(sent); 

     List taggedWords = parse.taggedYield(); 
     System.out.println(taggedWords); 
} 

Приведенный выше пример работает, но как вы можете видеть, я загрузке данных на английском. Спасибо.

+0

См здесь - http://nlp.stanford.edu/software/pos-tagger-faq.shtml –

+0

@SrikanthA: Спасибо, с точки-24, я понимаю, что есть механизм возврата, если язык неверен. Любая идея о первом выпуске. Спасибо. –

ответ

0

Для запроса 1, я не думаю, что stanford-nlp имеет возможность извлекать определенные теги POS.

Однако, используя индивидуально подготовленные модели, мы можем достичь того же. Я попробовал аналогичное требование для пользовательских моделей распознавания имен NER - name.

+0

Спасибо. Правильно ли я говорю о Query-2, где он будет отброшен на немецкий язык или мне нужно сначала определить язык? –

+0

Для запроса -2, вам, возможно, придется посмотреть на это - http://stackoverflow.com/questions/29290107/detecting-language-using-stanford-nlp и http://nlp.stanford.edu/software/corenlp- faq.shtml языки #. Примечание. Я не пробовал использовать несколько языков, но вижу, что ссылки выше –

1

Попробуйте это:

for (Tree subTree: parse) // traversing the sentence's parse tree 
    { 
     if(subTree.label().value().equals("NNPS")) //If the word's label is NNPS 
     { //Do what you want } 
    }