1

スタンフォード パーサーに自分のタグ付き入力文を与える方法を教えてください。タグ付けされた文は、たとえば、

A/NN quick/JJ brown/JJ fox/NN

.

彼らのドキュメントから、フラグ -tagSeparator /が機能するはずであることがわかりましたが、プログラムでこのフラグを使用する方法がわからないため、ここでかなり迷っています。それとも他の方法ですか?

助けてください。

4

1 に答える 1

2

API 内では、単語とタグを自分でトークン化し、タグ付きの単語を parse メソッドにフィードする必要があります。parse メソッドの Javadoc ドキュメントを参照してください。

public boolean parse(List<? extends HasWord> sentence)

Word、TaggedWord、または CoreLabel オブジェクトのトークンのリストを渡します。これらのオブジェクトが HasTag を実装している場合、格納されているすべてのタグが抽出されて使用されます。たとえば、次のように動作します。

String[] words = { "This", "is", "an", "easy", "sentence", "." };
String[] tags = { "DT", "VBZ", "DT", "JJ", "NNP", "." };
List<TaggedWord> sentence = new ArrayList<TaggedWord>();
assert words.length == tags.length;
for (int i = 0; i < words.length; i++) {
  sentence.add(new TaggedWord(words[i], tags[i]));
}
Tree parse = lp.apply(sentence); 

出力解析ツリーを見ると、「文」は (間違って) 「NNP」とタグ付けされています。

于 2011-03-23T18:16:47.797 に答える