そこから名詞句を抽出したいテキストがあります。持っているテキストの型付きパーサーを簡単に取得できますが、テキスト内の名詞句をどのように抽出できるのでしょうか?
3 に答える
次のコードを使用して、Tree から名詞句を抽出できます。これは、構文解析済みの文が parse に格納されていることを前提としています(つまり、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;
}
このリンクも試してみてください。stanford pos tagger と corenlp で利用可能な tagger が同じかどうかはわかりませんが、このリンクの方が便利であることがわかりました。
PoS タグ付けの後、次のようなパターンを検出する必要があります (形容詞 | 名詞)* (名詞の前置詞)? (形容詞 | 名詞)* 名詞
名詞句検出の詳細については、このリンクを試してください。
POS のタグ付けには 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 で始まります。このチェックを実行すると、必要なトークンが得られます。