Java 使用斯坦福类型解析器从文本文件中提取名词短语

Java 使用斯坦福类型解析器从文本文件中提取名词短语,java,text,nlp,stanford-nlp,opennlp,Java,Text,Nlp,Stanford Nlp,Opennlp,我有一个文本,我想从中提取名词短语。我可以很容易地为我所拥有的文本获取类型化解析器,但不知道如何提取文本中的名词短语?您可以使用斯坦福核心NLP进行词性标记。您可以找到一个示例代码,在该代码处可能是进行实验的良好起点。您需要将tokenize、split和pos作为属性。这将输出令牌列表及其相应的标记 整个标记列表可以在以下位置振动。所有的名词标记都以NN开头。执行此检查将为您提供所需的令牌。也可以尝试此操作。我不确定斯坦福pos标记器和corenlp中可用的标记器是否相同,但我发现这个链接更有

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

您可以使用斯坦福核心NLP进行词性标记。您可以找到一个示例代码,在该代码处可能是进行实验的良好起点。您需要将tokenize、split和pos作为属性。这将输出令牌列表及其相应的标记

整个标记列表可以在以下位置振动。所有的名词标记都以NN开头。执行此检查将为您提供所需的令牌。

也可以尝试此操作。我不确定斯坦福pos标记器和corenlp中可用的标记器是否相同,但我发现这个链接更有用

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


有关名词短语检测的详细信息,请尝试此操作。

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

publicstaticlist GetNounPhrases()
{
List phraseList=新的ArrayList();
for(树子树:解析)
{
if(subtree.label().value().equals(“NP”))
{
短语列表。添加(子树);
System.out.println(子树);
}
}
返回短语列表;
}

我已经尝试使用stanford类型的解析器,但仍然不知道哪个标记表示名词短语!你需要NLP工具。检查这个问题,首先为什么要使用依赖项解析器?一个普通的解析树生成器似乎可以满足您的需求。请查看我的代码以获取依赖项信息。语法分析会有一些不同,但您可以通过几个调试循环来解决:
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;

}