【问题标题】:Java File sometimes works and sometimes does not workJava 文件有时有效,有时无效
【发布时间】:2014-12-12 16:24:40
【问题描述】:

我正在尝试对句子进行情感分析。我正在阅读单词的正负值,然后将结果显示给用户,因为输入的句子是正数或负数。但是,它适用于某些句子,而其他句子则例外,我对此感到非常困惑。我的代码如下。所有的实现都是通过这个类完成的。我该怎么做才能解决它?

我有类似的文件 无聊 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

【问题讨论】:

  • 您能否向我们提供您获得的例外情况?
  • 另外请告诉我们输入文件的样子而不是描述它,你可以给我们一个sn-p
  • 我打赌ArrayIndexOutOfBoundsException,您尝试在没有验证您实际上将线路分成三部分的情况下盲目访问parts[0], parts[1],parts[2]
  • @RajaAnbazhagan 我添加了一个编辑。
  • 你为什么要删除代码?

标签: java file sentiment-analysis


【解决方案1】:

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

Probability a = s.findProbabilities(words[k]);  
pos = pos*a.positive;   //ERROR LINE

您会在该行获得空引用异常的唯一原因是 anull

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

如果a 为空,您将无法访问a.positive。您必须处理 null 情况。它可以像

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

【讨论】:

    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 2015-02-11
    • 2012-08-02
    • 2015-03-31
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    相关资源
    最近更新 更多