2

Javaでスタンフォードnlpを使用して、解析されたテキストから意味のある単語を取得するという要件があります。私は次のサンプルコードを試しています。

    import edu.stanford.nlp.trees.*;
    import edu.stanford.nlp.ling.HasWord;
    import edu.stanford.nlp.parser.lexparser.LexicalizedParser;
    public class Demo 
    {
    public static void main(String args[])
        {
     LexicalizedParser lp = new LexicalizedParser("englishPCFG.ser");
     lp.setOptionFlags(new String[]{"-maxLength", "80","-retainTmpSubcategories"});
                String sent = "my name is arjun";
                Tree parse = (Tree) lp.apply(sent);
                List taggedWords = parse.taggedYield();
                System.out.println(parse.toString());
    }
    }

出力:

(ROOT (S (NP (PRP$ my) (NN name)) (VP (VBZ is) (ADJP (JJ arjun)))))

必要な出力:

name,arjun.

これを行う方法.私に提案してください.

ありがとう。

4

1 に答える 1

2

関心のある語句レベルを決定し、TaggedWord の Word 部分のみを出力します。

あなたの唯一の例から、単一名詞 (NN) と形容詞 (JJ) または ADJP (形容詞句) に興味があるようです。(あなたの例に基づいていますが、同様に有効な答えは、「[a]または[n]で始まるすべての単語を表示する」または長さ> 2のすべての単語です)。

toStringこれにはバージョンを使用しないでください。代わりに、解析されたツリーのタグ値を調べてください。

于 2013-07-26T08:47:57.167 に答える