我正在尝试使用Stanford Parser从文本中提取阿拉伯语专有名称。
例如,如果我有一个输入句子:
تكريم سعد الدين الشاذلى
使用阿拉伯语Stanford解析器,树形图将是:
(ROOT (NP (NN تكريم) (NP (NNP سعد) (DTNNP الدين) (NNP الشاذلى))))
我想提取正确的名称:
سعد الدين الشاذلى
有子树:
(NP (NNP سعد) (DTNNP الدين) (NNP الشاذلى))
我试过这个:similar question
但这一行有一些问题:
List<TaggedWord> taggedWords = (Tree) lp.apply(str);
将树类型放入taggedword列表中的错误
另一件事,我不明白我在哪里可以使用建议的taggedYield()
函数
有什么想法吗?
答案 0 :(得分:2)
这是关于库的非常基本的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());
}
}