У меня есть текст, который я хочу извлечь из него существительные. Я могу легко получить набранный парсер для текста, который у меня есть, но интересно, как я могу извлечь существительные фразы в тексте?
Извлечение именных фраз из текстового файла с использованием синтаксического анализа на основе stanford
Ответ 1
Вы можете извлечь существительные фразы из дерева, используя следующий код. Предполагается, что вы проанализировали предложение, хранящееся в синтаксическом разборе (т.е. Синтаксический анализ выводится методом применения класса LexicalizedParser)
public static List<Tree> GetNounPhrases()
{
List<Tree> phraseList=new ArrayList<Tree>();
for (Tree subtree: parse)
{
if(subtree.label().value().equals("NP"))
{
phraseList.add(subtree);
System.out.println(subtree);
}
}
return phraseList;
}
Ответ 2
Попробуйте эту ссылку . Я не уверен, что теггер stanford pos и теггер, доступные в corenlp, являются одинаковыми или нет, но я нашел эту ссылку более полезной.
После маркировки PoS вам придется обнаруживать шаблоны, подобные этому (Прилагательное | Существительное) * (Предположение предлога)? (Прилагательное | Существительное) * Существительное
Попробуйте ссылку для получения подробной информации об обнаружении фразельных имен.
Ответ 3
Вы можете использовать NLP Stanford Core для пометки POS. Вы можете найти пример кода http://nlp.stanford.edu/software/corenlp.shtml#Usage, который может стать хорошей отправной точкой для экспериментов. Вам нужно будет предоставить tokenize, split и pos как свойства. Это выводит список токенов с соответствующими тегами.
Весь список тегов можно просмотреть в http://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html. Все теги существительных начинаются с NN. Выполнение этой проверки даст вам необходимые токены.