2013-10-18 4 views
1

나는 문장을 분석하고 출력을 얻기 위해 아래의 코드를 사용하고 있지만, 오류문장을 구문 분석하고 문장에 대한 태그와 단어의 출력을 얻는 방법은 무엇입니까?

(method apply in class LexicalizedParser cannot be applied to given types; 
    required: List<? extends HasWord> 
    found: String 
    reason: actual argument String cannot be converted to List<? extends HasWord> by method invocation conversion) 
at line parse = (Tree) lp.apply(sent): 


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

public class ParserDemo1 { 
    public static void main(String[] args){ 
     LexicalizedParser lp = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"); 
     lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"}); 
     String sent="Ohio is located in America"; 
     Tree parse; 
     parse = (Tree) lp.apply(sent); 

     List taggedWords = parse.taggedYield(); 
     System.out.println(taggedWords); 
    } 
} 

I 출력을 얻기 위해 어떻게해야 하는가를 보여주는거야?

+0

컴파일 타임 또는 런타임시 오류가 발생합니까? 런타임 인 ​​경우, 라이브러리의 컴파일 시간 버전과 런타임 버전이 동일한 지 확인하십시오. –

답변

0

오류는 "보낸"문자열이 적용 방법의 유효한 데이터 유형이 아님을 나타냅니다. 데이터 유형 LIST이 필요합니다! "보낸"문자열을 LIST (String) 변수에 넣고 대신 전달하십시오!

당신은 parse를 사용하는 대신 적용해야합니다 :)

+0

문제를 해결하기 위해 코드를 제공 할 수 있습니까? 컴파일 시간 오류가 발생했습니다. –

+0

나는 이것을 먼저 제공하려고합니다. 먼저 집에 가야합니다. 최대한 빨리 답변을 수정하겠습니다. – Drifter64

+0

죄송합니다. 특별한 사용자 정의 클래스를 가져 오는 것을 깨달았습니다. 그런 것들을 다운로드하고 설정하는 데 익숙하지 않았습니다. 링크를 제공 한 LIST 문서를 살펴보십시오. 그것은 당신에게해야 할 일을 보여 주어야합니다, 또는 당신은 LIST 수업을 사용하는 방법을 구글 수 있습니다, 온라인 예제가 많이 있습니다. 나는 당신이 단지리스트를 만들고 list.add (보낸)와 같은 것을해야한다고 생각할 것이다. :) – Drifter64

0

여기 당신의 대답이다.

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

public class ParserDemo1 { 
    public static void main(String[] args){ 
     LexicalizedParser lp = LexicalizedParser.loadModel("edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz"); 
     lp.setOptionFlags(new String[]{"-maxLength", "80", "-retainTmpSubcategories"}); 
     String sent="Ohio is located in America"; 
     Tree parse; 
     parse = (Tree) lp.parse(sent); 

     List taggedWords = parse.taggedYield(); 
     System.out.println(taggedWords); 
    } 
}