Stanford nlp 使用stanford core nlp时出错
我在使用斯坦福nlp时遇到问题。我在尝试使用斯坦福核心NLP工具时遇到了各种各样的错误。我想知道所传递句子的情感。但是,当从eclipse运行代码并将所需的JAR添加到类路径时,我无法让nlp工具工作 这是我想要执行的代码Stanford nlp 使用stanford core nlp时出错,stanford-nlp,sentiment-analysis,Stanford Nlp,Sentiment Analysis,我在使用斯坦福nlp时遇到问题。我在尝试使用斯坦福核心NLP工具时遇到了各种各样的错误。我想知道所传递句子的情感。但是,当从eclipse运行代码并将所需的JAR添加到类路径时,我无法让nlp工具工作 这是我想要执行的代码 import java.util.Properties; import edu.stanford.nlp.ling.CoreAnnotations; import edu.stanford.nlp.ling.CoreLabel; import edu.stanford.nl
import java.util.Properties;
import edu.stanford.nlp.ling.CoreAnnotations;
import edu.stanford.nlp.ling.CoreLabel;
import edu.stanford.nlp.ling.CoreAnnotations.TokensAnnotation;
import edu.stanford.nlp.pipeline.Annotation;
import edu.stanford.nlp.pipeline.SentimentAnnotator;
import edu.stanford.nlp.pipeline.StanfordCoreNLP;
import edu.stanford.nlp.rnn.RNNCoreAnnotations;
import edu.stanford.nlp.sentiment.SentimentCoreAnnotations;
import edu.stanford.nlp.trees.Tree;
import edu.stanford.nlp.util.CoreMap;
import edu.stanford.nlp.util.TypesafeMap.Key;
public class sentiment_demo {
public static void sentiment_analysis(String line)
{
//Uses Stanford NLP sentimnet analysis
//found in latest model released from stanford
// ver 3.3.1
//applies sentiment analysis to text
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, parse, sentiment");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
int mainSentiment = 0;
if (line != null && line.length() > 0) {
int longest = 0;
Annotation annotation = pipeline.process(line);
for (CoreMap sentence : annotation.get(CoreAnnotations.SentencesAnnotation.class)) {
System.out.println(sentence);
for (Tree token: sentence.get(SentimentCoreAnnotations.AnnotatedTree.class))
{
//System.out.println(token);
}
Tree tree = sentence.get(SentimentCoreAnnotations.AnnotatedTree.class);
int sentiment = RNNCoreAnnotations.getPredictedClass(tree);
System.out.println(sentiment);
String partText = sentence.toString();
//System.out.println(partText);
if (partText.length() > longest) {
mainSentiment = sentiment;
longest = partText.length();
}
}
}
if(mainSentiment==2)
{
System.out.println("Average");
}
else if(mainSentiment>2)
{
System.out.println("Positive");
}
else if(mainSentiment<2)
{
System.out.println("Negative ");
}
if (mainSentiment == 2 || mainSentiment > 4 || mainSentiment < 0) {
//return null;
}
}
public static void main(String[] args)
{
sentiment_analysis("Cristiano Ronaldo, is a Portuguese professional footballer who plays for Spanish club Real Madrid and the Portugal national team. He is a forward and serves as captain for Portugal.Often ranked as the best player in the world and rated by some in the sport as the greatest of all time");
}
}
import java.util.Properties;
导入edu.stanford.nlp.ling.core注释;
导入edu.stanford.nlp.ling.corelab;
导入edu.stanford.nlp.ling.CoreAnnotations.TokensAnnotation;
导入edu.stanford.nlp.pipeline.Annotation;
导入edu.stanford.nlp.pipeline.mountainAnnotator;
导入edu.stanford.nlp.pipeline.StanfordCoreNLP;
导入edu.stanford.nlp.rnn.rnn注释;
导入edu.stanford.nlp.touction.mountain注释;
导入edu.stanford.nlp.trees.Tree;
导入edu.stanford.nlp.util.CoreMap;
导入edu.stanford.nlp.util.TypesafeMap.Key;
公众课堂情绪演示{
公共静态空洞分析(细线)
{
//使用斯坦福NLP Sentinet分析
//在斯坦福大学发布的最新型号中发现
//第3.3.1版
//将情感分析应用于文本
Properties props=新属性();
props.setProperty(“注释器”、“标记化、ssplit、解析、情感”);
StanfordCoreNLP管道=新的StanfordCoreNLP(道具);
int=0;
if(line!=null&&line.length()>0){
int=0;
注释=pipeline.process(行);
for(CoreMap语句:annotation.get(coreanotations.SentencesAnnotation.class)){
System.out.println(句子);
for(树标记:句子.get(感伤CoreAnnotations.AnnotatedTree.class))
{
//System.out.println(令牌);
}
Tree-Tree=句子.get(momentCoreAnnotations.AnnotatedTree.class);
int=rnncorencenotations.getPredictedClass(树);
系统输出打印(情绪);
String partText=句子.toString();
//System.out.println(partText);
if(partText.length()>最长){
主要情绪=情绪;
最长=partText.length();
}
}
}
if(main==2)
{
系统输出打印项次(“平均”);
}
否则如果(主情绪>2)
{
系统输出打印项次(“正”);
}
else if(主情绪4 | |主情绪<0){
//返回null;
}
}
公共静态void main(字符串[]args)
{
情绪分析(“克里斯蒂亚诺·罗纳尔多,葡萄牙职业足球运动员,效力于西班牙皇家马德里俱乐部和葡萄牙国家队。他是一名前锋,担任葡萄牙队队长。经常被评为世界上最好的球员,并被一些体育界人士评为有史以来最伟大的球员”);
}
}
这是我设置的库
我正在使用eclipse火星。起初它显示了ejml库的错误。但后来我导入了EJMLJAR文件,所以错误得到了解决,但现在它导致了这个错误
Adding annotator tokenize
Adding annotator ssplit
Adding annotator parse
Loading parser from serialized file edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz ... done [1.6 sec].
Adding annotator sentiment
Exception in thread "main" edu.stanford.nlp.io.RuntimeIOException: java.lang.ClassNotFoundException: edu.stanford.nlp.neural.SimpleTensor
at edu.stanford.nlp.sentiment.SentimentModel.loadSerialized(SentimentModel.java:470)
at edu.stanford.nlp.pipeline.SentimentAnnotator.<init>(SentimentAnnotator.java:45)
at edu.stanford.nlp.pipeline.StanfordCoreNLP$14.create(StanfordCoreNLP.java:845)
at edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:81)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:260)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:127)
at edu.stanford.nlp.pipeline.StanfordCoreNLP.<init>(StanfordCoreNLP.java:123)
at sentiment_demo.sentiment_analysis(sentiment_demo.java:28)
at sentiment_demo.main(sentiment_demo.java:70)
Caused by: java.lang.ClassNotFoundException: edu.stanford.nlp.neural.SimpleTensor
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at java.io.ObjectInputStream.resolveClass(Unknown Source)
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.TreeMap.buildFromSorted(Unknown Source)
at java.util.TreeMap.buildFromSorted(Unknown Source)
at java.util.TreeMap.readObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at java.util.TreeMap.buildFromSorted(Unknown Source)
at java.util.TreeMap.buildFromSorted(Unknown Source)
at java.util.TreeMap.readObject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
at edu.stanford.nlp.io.IOUtils.readObjectFromURLOrClasspathOrFileSystem(IOUtils.java:298)
at edu.stanford.nlp.sentiment.SentimentModel.loadSerialized(SentimentModel.java:466)
添加注释器标记化
添加注释器ssplit
添加注释器解析
正在从序列化文件edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz加载解析器。。。完成[1.6秒]。
添加注释者情绪
线程“main”edu.stanford.nlp.io.RuntimeIOException:java.lang.ClassNotFoundException:edu.stanford.nlp.neural.SimpleSensor中的异常
在edu.stanford.nlp.thousion.thousionModel.loadSerialized上(thousionModel.java:470)
位于edu.stanford.nlp.pipeline.感伤注释器。(感伤注释器.java:45)
位于edu.stanford.nlp.pipeline.StanfordCoreNLP$14.create(StanfordCoreNLP.java:845)
位于edu.stanford.nlp.pipeline.AnnotatorPool.get(AnnotatorPool.java:81)
位于edu.stanford.nlp.pipeline.StanfordCoreNLP.construct(StanfordCoreNLP.java:260)
位于edu.stanford.nlp.pipeline.StanfordCoreNLP.(StanfordCoreNLP.java:127)
位于edu.stanford.nlp.pipeline.StanfordCoreNLP.(StanfordCoreNLP.java:123)
在情绪演示。情绪分析(情绪演示。java:28)
在感悟demo.main(感悟demo.java:70)
原因:java.lang.ClassNotFoundException:edu.stanford.nlp.neural.SimpleSensor
位于java.net.URLClassLoader.findClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于sun.misc.Launcher$AppClassLoader.loadClass(未知源)
位于java.lang.ClassLoader.loadClass(未知源)
位于java.lang.Class.forName0(本机方法)
位于java.lang.Class.forName(未知源)
位于java.io.ObjectInputStream.resolveClass(未知源)
位于java.io.ObjectInputStream.readNonProxyDesc(未知源)
位于java.io.ObjectInputStream.readClassDesc(未知源)
位于java.io.ObjectInputStream.ReadOrderinaryObject(未知源)
位于java.io.ObjectInputStream.readObject0(未知源)
位于java.io.ObjectInputStream.readObject(未知源)
位于java.util.TreeMap.buildFromSorted(未知源)
位于java.util.TreeMap.buildFromSorted(未知源)
位于java.util.TreeMap.readObject(未知源)
在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处
位于sun.reflect.NativeMethodAccessorImpl.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke处(未知源)
位于java.lang.reflect.Method.invoke(未知源)
位于java.io.ObjectStreamClass.invokeReadObject(未知源)
位于java.io.ObjectInputStream.readSerialData(未知源)
位于java.io.ObjectInputStream.ReadOrderinaryObject(未知源)
位于java.io.ObjectInputStream.readObject0(未知源)
位于java.io.ObjectInputStream.readObject(未知源)
位于java.util.TreeMap.buildFromSorted(未知源)
位于java.util.TreeMap.buildFromSorted(未知源)
在java.uti
import edu.stanford.nlp.neural.rnn.RNNCoreAnnotations;