在斯坦福解析器的树中提取的引理

时间:2016-10-26 08:37:54

标签: java tree stanford-nlp pos-tagger lemmatization

我使用Stanford解析器进行实现。 我想使用句子的树来提取各种信息。

我使用了以下代码: Get certain nodes out of a Parse Tree

我有我的CoreMap语句和相应的树:

Tree sentenceTree=  sentence.get(TreeCoreAnnotations.TreeAnnotation.class);
for (Tree sentenceTree: t) { 
String pos = sentenceTree.label().value();
String wd = sentenceTree.firstChild().label().value();
Integer wdIndex = ?? 
CoreLabel token = sentence.get(CoreAnnotations.TokensAnnotation.class).get(wdIndex);

}

我无法提取引理,是否有人知道该怎么做?

我尝试了下面的代码并且它可以工作,但它会产生一些警告并且也不是很干净:

Annotation a = new Annotation("geese");
ss.pipeline.annotate(a);
CoreMap se = a.get(CoreAnnotations.SentencesAnnotation.class).get(0);
CoreLabel token = se.get(CoreAnnotations.TokensAnnotation.class).get(0);
String lemma = token.get(CoreAnnotations.LemmaAnnotation.class);
System.out.println(lemma); // goose

有人有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

我有同样的问题,但我用对叶子的HashMap和叶子的索引解决了它。此代码打印每个匹配的叶子的词形化版本,这是名词。

2^i*x1[i]

此解决方案仅在搜索节点为leaf之前的一个级别时才起作用。