型付けされた依存関係では、スタンフォード パーサーは単語の出現場所、たとえば「love-2」も示します。これで、「愛」が「2」位に表示されます。
nsubj(love-2, I-1)
poss(country-4, my-3)
dobj(love-2, country-4)
では、スタンフォード パーサー API を使用してプログラムで単語の場所を見つけるにはどうすればよいでしょうか。APIにファナクションはありますか?
型付けされた依存関係では、スタンフォード パーサーは単語の出現場所、たとえば「love-2」も示します。これで、「愛」が「2」位に表示されます。
nsubj(love-2, I-1)
poss(country-4, my-3)
dobj(love-2, country-4)
では、スタンフォード パーサー API を使用してプログラムで単語の場所を見つけるにはどうすればよいでしょうか。APIにファナクションはありますか?
文中の特定の単語のインデックスを取得する場合は、それを直接トークン化して、indexOf(token)+1
TypedDependency format >>> briefd_form_reln(governor、dependent)として配置することを選択
できます。インデックスにアクセスする場合TypedDependency(またはその他の属性)内の特定の単語の場合は、APIを使用します
。たとえば
、TypedDepency tdはnsubj(love-2、I-1)を表します。
td.gov(); //gives the governer (of type TreeGraphNode)
td.dep(); //gives the dependent (")
td.reln(); //gives the relation (of type GrammaticalRelation)
次に、TreeGraphNodeのメソッドを使用して、詳細を取得できます。Say
、TreeGraphNode tgn = td.gov();
tgn.index(); //yields the required index (for the above case, 2)
javadochttp://nlp.stanford.edu/nlp/javadoc/javanlp/を参照してください。
以下のようなことをします。wordIndex はあなたが望むものです。
import edu.stanford.nlp.ling.CoreAnnotations.IndexAnnotation;
...
GrammaticalStructure gs = gsf.newGrammaticalStructure(parse);
List<TypedDependency> tdl = gs.typedDependenciesCCprocessed();
TypedDependency td = tdl.get(0);
CoreLabel cl = td.dep().label();
int wordIndex = cl.get(IndexAnnotation.class);
あなたはすでに文を与えているに違いないので、なぜその単語の位置をまだ知らないのか私にはわかりません.
代わりに、同じ単語に言及している複数の依存関係がある理由を理解しようとしている場合、これは、単語がある依存関係から別の依存関係に伝播する可能性があるためです。