Извлечение арабских имен из текста с использованием Stanford-Parser - PullRequest
1 голос
/ 28 июня 2011

Я пытаюсь извлечь арабские имена из текста, используя Stanford Parser.

например, если у меня есть входное предложение:

تكريم سعد الدين الشاذلى

с использованием синтаксического анализатора Арабского Стенфорда древовидная диаграмма будет выглядеть так:

(ROOT (NP (NN تكريم) (NP (NNP سعد) (DTNNP الدين) (NNP الشاذلى))))

Я хочу извлечь собственное имя:

سعد الدين الشاذلى

которые имеют поддерево:

(NP (NNP سعد) (DTNNP الدين) (NNP الشاذلى))

Я пробовал это: аналогичный вопрос

но в этой строке что-то не так:

List<TaggedWord> taggedWords = (Tree) lp.apply(str);

ошибка при добавлении типа дерева в список тегового слова еще одна вещь, которую я не понял, где я мог бы использовать предложенную taggedYield() функцию

Есть идеи, пожалуйста?

1 Ответ

2 голосов
/ 10 августа 2011

Это довольно простая Java по отношению к библиотеке, но вы хотите:

Tree tree = lp.apply(str);
List<TaggedWord> taggedWords = tree.taggedYield();
for (TaggedWord tw : taggedWords) {
  if (tw.tag().contains("NNP")) {
    System.err.println(tw.word());
  }
}    
...