edu.stanford.nlp.*
パッケージを使用してすべての名詞句を取得しようとしています。ラベル値「NP」のすべてのサブツリーを取得しましたが、通常の元のString
形式 (ペン ツリー形式ではない) を取得できません。
たとえば、ギブスですが、subtree.toString()
「(NP (ND all)(NSS times)))
常に」という文字列が必要です。誰でも私を助けてください。前もって感謝します。
edu.stanford.nlp.*
パッケージを使用してすべての名詞句を取得しようとしています。ラベル値「NP」のすべてのサブツリーを取得しましたが、通常の元のString
形式 (ペン ツリー形式ではない) を取得できません。
たとえば、ギブスですが、subtree.toString()
「(NP (ND all)(NSS times)))
常に」という文字列が必要です。誰でも私を助けてください。前もって感謝します。
あなたが望むのは次のようなものだと思います:
final StringBuilder sb = new StringBuilder();
for ( final Tree t : tree.getLeaves() ) {
sb.append(t.toString()).append(" ");
}
100% 確実ではありませんが、これは私が数年前に取り組んだいくつかのソフトウェアに使用されたソリューションであることを思い出しているようです。
これは、別の StringBuilder オブジェクトを作成する代わりに、サブツリーの yield() メソッドを使用して実現できます。
if (subtree.label().value().equals("NP")) {
out.println(subtree); //print subtree
out.println(Sentence.listToString(subtree.yield())); //print phrase
break;
}