2

私の主な問題は、GrammaticalStructure からノードを抽出する方法がわからないことです。java netbeans で englishPCFG.ser を使用しています。私の目標は、次のような画面の品質を知ることです。

iPhone 4の画面は素晴らしいです。

私はスクリーンと素晴らしいを抽出したい。NN (画面) と VP (素晴らしい) を抽出するにはどうすればよいですか?

私が書いたコードは次のとおりです。

LexicalizedParser lp = new LexicalizedParser("C:\\englishPCFG.ser");
lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"});

String sent ="the screen is very good.";
Tree parse = (Tree) lp.apply(Arrays.asList(sent));
parse.pennPrint();
System.out.println();

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

1 に答える 1

2

コレクションtdlは、型指定された依存関係のリストです。この文には、次のものが含まれます。

det(screen-2, the-1)
nsubj(great-7, screen-2)
amod(4-5, iphone-4)
prep_of(screen-2, 4-5)
cop(great-7, is-6)

(オンラインで試してみるとわかります)。

したがって、必要な依存関係nsubj(great-7, screen-2)はそのリストにあります。 nsubj「スクリーン」が「素晴らしい」の主語であることを意味します。

依存関係のコレクションは単なるコレクション (リスト) です。より洗練されたさらなる処理を行うために、人々は通常、依存関係をさまざまな検索およびトラバースが可能なグラフ構造にしたいと考えています。それにはさまざまな方法があります。(jgrapht)[http://www.jgrapht.org/] ライブラリをよく使用します。しかし、それはあなたが自分で書いているコードです。

于 2011-01-09T06:47:48.697 に答える