【问题标题】:I want to get nodes of parseTree我想获取 parseTree 的节点
【发布时间】:2013-12-19 20:20:31
【问题描述】:

这是我的代码的一部分:

String sentence = "系统不要求用户根据特定条件搜索书籍并检查特定书籍的可用性。但是要检查书籍,检查他们各自的书籍借阅状态,并暂停已经出借的书籍,用户必须首先向系统表明自己的身份。”; 解析 topParses[] =ParserTool.parseLine(sentence, parser, /*numParses=*/ 3); for (解析 parseTree: topParses){ parseTree.show();

我怎样才能得到句子中的动词?请!

我的意思是,我怎样才能得到树的节点?

【问题讨论】:

  • parseTree 是否有返回其子项的方法?他们有没有返回孩子等的方法?对它们进行迭代或递归。
  • 是的,就是这个 parseTree.getChildren();我该如何迭代他们对不起我是java新手..
  • 好的。然后写一个树递归算法。该函数将是这样的:如果节点有子节点,foreach 循环遍历它们并在每个节点上调用此函数。否则,我们在一个叶节点上,对其执行一些功能(例如将其添加到列表中)。
  • 我花了很多时间来解析句子,但是当我尝试从中获取动词时"(TOP (S (NP (DT The) (NNS systemDoesNotRequireusers)) (VP (TO to) (VP(VB识别)”我不能,所以请把你之前的解释作为java代码,谢谢
  • 节点可以在树中任意深,所以使用递归算法。

标签: opennlp


【解决方案1】:

如果你只需要从句子中获取动词,那么opennlp中的POSTagger就足够了。你所要做的就是使用Opennlp分词器获取数组中的令牌并将其提供给POSTaggerME。它会给你相应的词性标签..然后你可以按动词标签过滤,如VB,VBZ等。

【讨论】:

    【解决方案2】:

    如果您正在寻找动词短语,则使用 Chunker,如果您只需要动词,则使用 POS 标记器。 看看这个答案 How to extract the noun phrases using Open nlp's chunking parser

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多