13

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

4

3 回答 3

10

您可以使用以下代码从树中提取名词短语。它假设您已经解析了存储在parse中的句子(即 parse 是 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;

}
于 2013-02-11T04:26:19.017 回答
8

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

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

试试这个链接,了解有关名词短语检测的一些详细信息。

于 2012-07-02T10:32:00.650 回答
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 开头。执行此检查将为您提供所需的令牌。

于 2012-06-21T12:55:53.230 回答