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

S G*_*ber 13 java text nlp stanford-nlp opennlp

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

ala*_*ing 10

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

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;

}
Run Code Online (Sandbox Code Playgroud)


MAR*_*ARK 8

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

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

试试这个链接,了解名词短语检测的一些细节.


小智 0

您可以使用斯坦福核心 NLP 进行词性标记。您可以在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 开头。执行此检查将为您提供所需的令牌。