0

私は Java 開発の初心者です。

スタンフォード大学の自然言語処理語彙パーサー (オープン ソース Java コード) を使用して「文法関係」を取得する方法について詳しく教えてください。

ありがとう!

4

1 に答える 1

6

Stanford Parser をプログラムで実行するには、コードの最初のファイルの 88 行目を参照してください

GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory();
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
Collection tdl = gs.typedDependenciesCollapsed();

System.out.println("words: "+words); 
System.out.println("POStags: "+tags); 
System.out.println("stemmedWordsAndTags: "+stems); 
System.out.println("typedDependencies: "+tdl); 

コレクション tdl は、これらの型付けされた依存関係のリストです。TypedDependencyのjavadoc を見ると、.reln() メソッドを使用すると文法上の関係が得られることがわかります。

コードの 3 番目のファイルの 311 ~ 318 行目は、型指定された依存関係のリストを使用する方法を示しています。私はたまたまリレーションの名前を取得しましたが、GrammaticalRelation クラスのリレーション自体を取得することもできます。

for( Iterator<TypedDependency> iter = tdl.iterator(); iter.hasNext(); ) {
    TypedDependency var = iter.next();

    TreeGraphNode dep = var.dep();
    TreeGraphNode gov = var.gov();

    // All useful information for a node in the tree
    String reln = var.reln().getShortName();

気分を悪くしないでください、私はパーサーの使い方を理解するのに惨めな 1 日か 2 日を費やしました。ドキュメントが改善されたかどうかはわかりませんが、使用したときはかなりひどかったです。

于 2012-05-03T08:06:12.017 に答える