当前位置: 首页 > 知识库问答 >
问题:

如何在Stanford Corenlp中获得短语标签?

王才英
2023-03-14

如果我想获得每个单词对应的短语标签,如何获得?

例如:

(ROOT (S (NP (PRP$ My) (NN dog)) (ADVP (RB also)) (VP (VBZ likes) (NP (JJ eating) (NN sausage))) (. .)))
(My - NP), (dog - NP), (also - ADVP), (likes - VP), ...

请帮帮我.

共有1个答案

孙文康
2023-03-14
//I guess this is how you get your parse tree.
Tree tree = sentAnno.get(TreeAnnotation.class);

//The children of a Tree annotation is an array of trees.
Tree[] children = parent.children() 

//Check the label of any sub tree to see whether it is what you want (a phrase)
for (Tree child: children){
   if (child.value().equals("NP")){// set your rule of defining Phrase here
          List<Tree> leaves = child.getLeaves(); //leaves correspond to the tokens
          for (Tree leaf : leaves){ 
            List<Word> words = leaf.yieldWords();
            for (Word word: words)
                System.out.print(String.format("(%s - NP),",word.word()));
          }
   }
}

代码没有经过充分测试,但我认为它大致可以满足您的需要。更重要的是,我没有写任何关于递归访问子树的内容,但我相信您应该能够做到这一点。

 类似资料:
  • 问题内容: 我想与Lucene交流一些经常出现的短语。我从TXT文件中获取了一些信息,并且由于没有短语信息而失去了很多上下文,例如“信息检索”被索引为两个单独的词。 怎样获得这样的短语?我在互联网上找不到任何有用的东西,所有的建议,链接,提示,尤其是示例都值得赞赏! 编辑: 我只按标题和内容存储我的文档: 因为对于我而言,最重要的是文件的内容。标题通常根本不是描述性的(例如,我有很多PDF学术论文

  • 我使用OpenNLP Java API进行句子标记化,它使用空格字符来标记句子,并拆分每个单词。 有没有什么方法可以让我跳过一些特定单词的分词或标记化。 例如在句子中。“一只敏捷的棕色狐狸跳过懒狗”。OpenNLP将句子拆分/标记为 一只 快速 棕色 狐狸 跳过 懒惰的 狗 我想跳过单词“Quick brown Fox”和“Lazy Dog”的标记化,因此预期的输出将是 一只 快速的棕色狐狸 跳过

  • 问题内容: 我试图建立具有查询属性,即时通讯修整,以获得与 它不断告诉我,是 无效的 列名我怎么能得到从查询? 问题答案: 用别名工作。Yii 1.1.11。其他失败

  • 短语标签已经针对特定目的进行了解密,尽管它们的显示方式与其他基本标签类似,如《b》, 《i》, 《pre》和《tt》 ,您已在前一章中看到过。 本章将引导您完成所有重要的短语标签,让我们一个接一个地看到它们。 强调文本 《em》...《/em》元素中出现的任何内容都显示为强调文本。 例子 (Example) <!DOCTYPE html> <html> <head> <title

  • 问题内容: 用户请求一些页面,我想(在服务器端)知道他/她的浏览器中的语言是什么。因此,我可以使用正确的消息来呈现模板。 在客户端,这很容易: 问题答案: 您可以使用 req.headers [“ accept-language”] 来获取用户在浏览器中设置的语言/语言环境。 为了获得更轻松的支持,您可能需要研究一个语言环境模块。