使用stanford类型解析器从文本文件中提取名词短语

时间:2012-06-11 04:33:23

标签: java text nlp stanford-nlp opennlp

我有一个文本,我想从中提取名词短语。我可以很容易地获得我所拥有的文本的类型解析器,但想知道如何在文本中提取名词短语?

3 个答案:

答案 0 :(得分:10)

您可以使用以下代码从Tree中提取名词短语。它假设您已解析存储在解析中的句子(即解析是LexicalizedParser类应用方法的输出)

public static List<Tree> GetNounPhrases()
{

    List<Tree> phraseList=new ArrayList<Tree>();
    for (Tree subtree: parse)
    {

      if(subtree.label().value().equals("NP"))
      {

        phraseList.add(subtree);
        System.out.println(subtree);

      }
    }

      return phraseList;

}

答案 1 :(得分:8)

也请尝试此link。我不确定stanford pos tagger和corenlp中可用的tagger是否相同,但我发现这个链接更有用。

在PoS标记之后,您将不得不检测这样的模式 (形容词|名词)*(名词介词)? (形容词|名词)*名词

请尝试使用此link了解有关名词短语检测的详细信息。

答案 2 :(得分:0)

您可以使用Stanford Core NLP进行POS标记。你可以在http://nlp.stanford.edu/software/corenlp.shtml#Usage找到一个示例代码,这可能是一个很好的实验起点。您需要将tokenize,split和pos作为属性。这将输出一个令牌列表及其相应的标签。

整个标记列表可以在http://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html处进行查看。所有名词标签都以NN开头。执行此检查将为您提供所需的令牌。