0
주로 Python과 Java를 처음 사용합니다. 그러나 Java 프로그램을 작성하여 Python Python 패키지를 통해 Python으로 작동 시키려고합니다. 다음의 프로그램은 제가 예를 통해 적용한 것입니다. 컴파일 오류가 발생했습니다. 빛 좀 비켜 주시겠습니까? 나는 그것이 기본 오류라고 확신한다. 감사.Python의 py4j를 통해 Java Corenlp의 정서 점수 프로그램에서 컴파일 오류가 발생했습니다.
> compile error: incompatible type: SimpleMatrix cannot be converted to String: return senti_scores.
> intended input in Python:
app = CoreNLPSentiScore()
app.findSentiment("I like this book")
intended output: matrix: Type = dense , numRows = 5 , numCols = 1
0.016
0.037
0.132
0.618
0.196
import java.util.List;
import java.util.Properties;
import edu.stanford.nlp.ling.CoreAnnotations;
import edu.stanford.nlp.neural.rnn.RNNCoreAnnotations;
import edu.stanford.nlp.pipeline.Annotation;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
import edu.stanford.nlp.sentiment.SentimentCoreAnnotations.SentimentAnnotatedTree;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.util.ArrayCoreMap;
import edu.stanford.nlp.util.CoreMap;
import py4j.GatewayServer;
import org.ejml.simple.SimpleMatrix;
public class CoreNLPSentiScore {
static StanfordCoreNLP pipeline;
public static void init() {
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, parse, sentiment");
pipeline = new StanfordCoreNLP(props);
}
public static void main(String[] args) {
CoreNLPSentiScore app = new CoreNLPSentiScore();
// app is now the gateway.entry_point
GatewayServer server = new GatewayServer(app);
server.start();
}
//public static void main(String tweet) {
//public static String findSentiment(String tweet) {
public String findSentiment(String tweet) {
//String SentiReturn = "2";
//String[] SentiClass ={"very negative", "negative", "neutral", "positive", "very positive"};
//Sentiment is an integer, ranging from 0 to 4.
//0 is very negative, 1 negative, 2 neutral, 3 positive and 4 very positive.
//int sentiment = 2;
SimpleMatrix senti_score = new SimpleMatrix();
if (tweet != null && tweet.length() > 0) {
Annotation annotation = pipeline.process(tweet);
List<CoreMap> sentences = annotation.get(CoreAnnotations.SentencesAnnotation.class);
if (sentences != null && sentences.size() > 0) {
ArrayCoreMap sentence = (ArrayCoreMap) sentences.get(0);
//Tree tree = sentence.get(SentimentAnnotatedTree.class);
Tree tree = sentence.get(SentimentAnnotatedTree.class);
senti_score = RNNCoreAnnotations.getPredictions(tree);
//SentiReturn = SentiClass[sentiment];
}
}
//System.out.println(senti_score);
return senti_score;
//System.out.println(senti_score);
}
}
감사 할 수 있습니다! 그것은 지금처럼 컴파일됩니다. 그러나 나는 Python에서 nullpointerexception을 가지고있다. 또 다른 질문을 제기 할 것이다. –