【问题标题】:Extracting noun phrases from a text file using stanford typed parser使用斯坦福类型解析器从文本文件中提取名词短语
【发布时间】:2012-06-14 00:42:01
【问题描述】:

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

【问题讨论】:

  • 我试图获得 stanford 类型的解析器,但仍然想知道哪些标签代表名词短语!
  • 你需要 NLP 工具。检查这个问题stackoverflow.com/questions/1889675/…
  • 你为什么首先使用依赖解析器?普通的解析树生成器似乎可以满足您的需求。
  • 查看我的代码以提取依赖信息。语法解析会略有不同,但您可以通过一些调试循环来解决:gist.github.com/2562754

标签: java text nlp stanford-nlp opennlp


【解决方案1】:

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

}

【讨论】:

    【解决方案2】:

    您可以使用 Stanford Core 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 开头。执行此检查将为您提供所需的令牌。

    【讨论】:

      【解决方案3】:

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

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

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

      【讨论】:

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