我有一个文本,我想从中提取名词短语。我可以很容易地获得我所拥有的文本的类型解析器,但想知道如何在文本中提取名词短语?
答案 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开头。执行此检查将为您提供所需的令牌。