Java文件有时工作,有时不工作

Java文件有时工作,有时不工作,java,file,sentiment-analysis,Java,File,Sentiment Analysis,我试图对一个句子进行情感分析。我正在阅读word的正负值,然后在输入的句子是正数或负数时向用户显示结果。然而,它对一些句子有效,对另一些句子例外,我真的很困惑。我的代码如下。所有的实现都是通过这个类完成的。我该怎么解决它 我有类似的文件 钻孔0.1 0.5 好的0.60.4 . . . 当我写一本无聊的书时 输出 这个句子是否定的 当我写一部糟糕的汽车时,我会 糟糕的汽车 File does not contain this word.! Exception in thread "main"

我试图对一个句子进行情感分析。我正在阅读word的正负值,然后在输入的句子是正数或负数时向用户显示结果。然而,它对一些句子有效,对另一些句子例外,我真的很困惑。我的代码如下。所有的实现都是通过这个类完成的。我该怎么解决它

我有类似的文件 钻孔0.1 0.5 好的0.60.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)
我的文件的内容是

a 0.80.8

美丽的0.30.01

汽车0.10.1

钻孔0.01 0.02

第0.20.18册

婴儿0.80.6

可爱的0.60.4


糟糕的0.3 0.4

从错误发生的情况来看:

Probability a = s.findProbabilities(words[k]);  
pos = pos*a.positive;   //ERROR LINE
在该行中出现空引用异常的唯一原因是
a
null

findpropabilities
方法中,执行while循环,该循环执行某种搜索。我没有深入研究它,因为那不是重要的部分。重要的一点是,如果没有找到匹配项,该方法可能返回
null

如果
a
为空,则无法访问
a.positive
。您必须处理空案例。它可以是简单到

if(a != null)
{
    pos = pos*a.positive;
    neg = neg*a.negative;
}
else
{
    // whatever you want to do if you can't find a
}

根据您的错误发生的情况判断:

Probability a = s.findProbabilities(words[k]);  
pos = pos*a.positive;   //ERROR LINE
在该行中出现空引用异常的唯一原因是
a
null

findpropabilities
方法中,执行while循环,该循环执行某种搜索。我没有深入研究它,因为那不是重要的部分。重要的一点是,如果没有找到匹配项,该方法可能返回
null

如果
a
为空,则无法访问
a.positive
。您必须处理空案例。它可以是简单到

if(a != null)
{
    pos = pos*a.positive;
    neg = neg*a.negative;
}
else
{
    // whatever you want to do if you can't find a
}

根据您的错误发生的情况判断:

Probability a = s.findProbabilities(words[k]);  
pos = pos*a.positive;   //ERROR LINE
在该行中出现空引用异常的唯一原因是
a
null

findpropabilities
方法中,执行while循环,该循环执行某种搜索。我没有深入研究它,因为那不是重要的部分。重要的一点是,如果没有找到匹配项,该方法可能返回
null

如果
a
为空,则无法访问
a.positive
。您必须处理空案例。它可以是简单到

if(a != null)
{
    pos = pos*a.positive;
    neg = neg*a.negative;
}
else
{
    // whatever you want to do if you can't find a
}

根据您的错误发生的情况判断:

Probability a = s.findProbabilities(words[k]);  
pos = pos*a.positive;   //ERROR LINE
在该行中出现空引用异常的唯一原因是
a
null

findpropabilities
方法中,执行while循环,该循环执行某种搜索。我没有深入研究它,因为那不是重要的部分。重要的一点是,如果没有找到匹配项,该方法可能返回
null

如果
a
为空,则无法访问
a.positive
。您必须处理空案例。它可以是简单到

if(a != null)
{
    pos = pos*a.positive;
    neg = neg*a.negative;
}
else
{
    // whatever you want to do if you can't find a
}


您能否向我们提供您得到的例外情况?另外,请告诉我们输入文件的外观,而不是描述它,您可以给我们一个itI的片段,我打赌是
ArrayIndexOutOfBoundsException
,您试图盲目访问
parts[0]、parts[1]、
parts[2]
没有验证您是否首先将该行拆分为三部分。@RajaAnbazhagan我添加了一个编辑。您为什么要删除该代码?您能否向我们提供您得到的例外情况?另外,请告诉我们输入文件的外观,而不是描述它,你可以给我们一个itI的片段,我赌
ArrayIndexOutOfBoundsException
你试图盲目访问
parts[0]、parts[1]、
parts[2]
没有验证您是否首先将该行拆分为三部分。@RajaAnbazhagan我添加了一个编辑。您为什么要删除该代码?您能否向我们提供您得到的例外情况?另外,请告诉我们输入文件的外观,而不是描述它,你可以给我们一个itI的片段,我赌
ArrayIndexOutOfBoundsException
你试图盲目访问
parts[0]、parts[1]、
parts[2]
没有验证您是否首先将该行拆分为三部分。@RajaAnbazhagan我添加了一个编辑。您为什么要删除该代码?您能否向我们提供您得到的例外情况?另外,请告诉我们输入文件的外观,而不是描述它,您可以给我们一个itI的片段,我赌
ArrayIndexOutOfBoundsException
,您试图盲目访问
parts[0]、parts[1]、
parts[2]
,但没有验证您是否确实首先将行拆分为三部分。@RajaAnbazhagan我添加了一个编辑。您为什么要删除代码?