2012-03-13 54 views
0

我已經寫了代碼,從而可以減少語法邊界文本,但是當我運行程序這個異常出現的Java郎類轉換異常

java.lang.ClassCastException 

這裏是我運行的類,

public class paerser { 
public static void main (String [] arg){ 
    LexicalizedParser lp = new LexicalizedParser("grammar/englishPCFG.ser.gz"); 
     lp.setOptionFlags("-maxLength", "500", "-retainTmpSubcategories"); 
     TreebankLanguagePack tlp = new PennTreebankLanguagePack(); 
     GrammaticalStructureFactory gsf = tlp.grammaticalStructureFactory(); 
     String text = "John, who was the CEO of a company, played golf."; 
     edu.stanford.nlp.trees.Tree parse = lp.apply(Arrays.asList(text)); 
     GrammaticalStructure gs = gsf.newGrammaticalStructure(parse); 
     List<TypedDependency> tdl = gs.typedDependenciesCCprocessed(); 
     System.out.println(tdl); 

} 
} 

更新,

這裏是完整的堆棧跟蹤...

Loading parser from serialized file grammar/englishPCFG.ser.gz ... done [1.5 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:346) 
    at edu.stanford.nlp.parser.lexparser.LexicalizedParser.parse(LexicalizedParser.java:386) 
    at edu.stanford.nlp.parser.lexparser.LexicalizedParser.apply(LexicalizedParser.java:304) 
    at paerser.main(paerser.java:19) 
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:317) 
    at paerser.main(paerser.java:19) 
+0

提供堆棧跟蹤,並確定引發異常的行。 – 2012-03-13 04:20:05

+0

發佈完整堆棧跟蹤,而不僅僅是錯誤消息 – edthethird 2012-03-13 04:20:14

+1

我已經使用完整跟蹤跟蹤更新了問題 – 2012-03-13 04:25:17

回答

3

Stacktrace顯示正在使用ExhaustivePCFGParser's parse method。它期望HasWord對象列表。您正在傳遞一個String列表。因此,例外。

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