我正试图对句子进行情感分析。我正在阅读单词的正面和负面值,然后将结果显示给用户,因为输入的句子是正面的或负面的。然而,它适用于某些句子ang给其他一些例外,我真的很困惑。我的代码如下。所有实现都是通过这个类完成的。我该怎么做才能解决它?
我有类似的文件 无聊0.1 0.5 好0.6 0.4 。 。 。 当我写一本无聊的书 输出 这句话是否定的
当我写一辆可怕的汽车时,我得到了
一辆可怕的汽车File does not contain this word.!
Exception in thread "main" java.lang.NullPointerException
at SentimentAnalysis.posOrNeg(SentimentAnalysis.java:86)
at SentimentAnalysis.main(SentimentAnalysis.java:121)
我的文件内容是
0.8 0.8
漂亮0.3 0.01
车0.1 0.1
无聊0.01 0.02
预订0.2 0.18
宝宝0.8 0.6可爱0.6 0.4
可怕的0.3 0.4
答案 0 :(得分:3)
判断你的错误发生了什么:
Probability a = s.findProbabilities(words[k]);
pos = pos*a.positive; //ERROR LINE
如果a
为null
在你的findProbabilities
方法中,你做了一个while循环来进行某种搜索。我没有深入研究它,因为那不是重要的部分。重要的是,如果找不到匹配项,该方法可能会返回null
。
如果a.positive
为空,则无法访问a
。你必须处理null情况。它可以像
if(a != null)
{
pos = pos*a.positive;
neg = neg*a.negative;
}
else
{
// whatever you want to do if you can't find a
}