2

以下は、StanfordParserAPIを使用してトークン化された文字列の配列からツリー出力を作成するためのサンプルコードです。このコードはここから入手できます。

import java.util.*;
import edu.stanford.nlp.trees.*;
import edu.stanford.nlp.parser.lexparser.LexicalizedParser;

class ParserDemo {
    public static void main(String[] args) {
        LexicalizedParser lp = LexicalizedParser.loadModel("englishPCFG.ser.gz"); //<--TODO   
        lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"});

        String[] sent = { "This", "is", "an", "easy", "sentence", "." };
        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);
        List<TypedDependency> tdl = gs.typedDependenciesCCprocessed();
        System.out.println(tdl);
        System.out.println();

        TreePrint tp = new TreePrint("penn,typedDependenciesCollapsed");
        tp.printTree(parse);
    }
} 

上記のコードは機能していません。それは私にこれらのエラーを与えています:

Loading parser from serialized file englishPCFG.ser.gz ... done [1.6 sec].
Following exception caught during parsing:
    java.lang.ClassCastException: java.lang.String cannot be cast to     edu.stanford.nlp.ling.HasWord
    at edu.stanford.nlp.parser.lexparser.ExhaustivePCFGParser.parse(ExhaustivePCFGParser.java:357)
    at edu.stanford.nlp.parser.lexparser.LexicalizedParserQuery.parse(LexicalizedParserQuery.java:247)
    at edu.stanford.nlp.parser.lexparser.LexicalizedParser.apply(LexicalizedParser.java:283)
    at Test.main(Test.java:15)
Recovering using fall through strategy: will construct an (X ...) tree.
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be   cast to edu.stanford.nlp.ling.HasWord
    at edu.stanford.nlp.parser.lexparser.LexicalizedParser.apply(LexicalizedParser.java:298)
    at Test.main(Test.java:15)

Process completed.

この例外報告について誰か説明してもらえますか?

4

0 に答える 0