2012-06-11 12 views
13

名詞句を抽出するテキストがあります。私は簡単に私が持っているテキストのための型パーサを得ることができますが、テキストの名詞句をどのように抽出することができますか?スタンフォード型パーサーを使用してテキストファイルから名詞句を抽出する

+1

を解析されていることを前提と私はスタンフォード大学のパーサを入力した取得しようとしましたが、まだ名詞句を表現しているタグ不思議! –

+0

UにはNLPツールが必要です。この質問をチェックするhttp://stackoverflow.com/questions/1889675/extract-nouns-from-text-java –

+0

なぜ最初に依存関係パーサーを使用していますか?通常のパースツリージェネレータは、あなたが望むもののために行くそのように思えます。 –

答えて

0

POSタグ付けにスタンフォードコア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で始まります。このチェックを実行すると、必要なトークンが得られます。

7

お試しくださいlinkも同様です。私は、スタンフォードのpos taggerとcorenlpで利用可能なtaggerが同じかどうかはわかりませんが、私はこのリンクがより有用であることを発見しました。

PoSタグ付け後に、このようなパターンを検出する必要があります (名詞前置詞)* (形容詞|名詞)*名詞

名詞句の検出については、linkをお試しください。

9

ツリーから名詞句を抽出するには、次のコードを使用します。それはあなたがパースに保存されている文(すなわち、解析メソッドを適用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; 

} 
関連する問題