zerodivisionerror-Float division错误

时间:2013-03-07 11:41:43

标签: python

ctr=0.0
i=0
pc=0.0
pi=0.0
nc=0.0
ni=0.0


for line in fileinput.input(['/pro/file1']):
    line = line.replace("\n", "")
    if (i < len(revs)): 
        if('pos' in revs[i]):
            if(float(line) > 0):
                ctr=ctr+1
                pc=pc+1

            else:
                                pi=pi+1

        elif('neg' in revs[i]):
            if(float(line) < 0):
                ctr=ctr+1
                nc=nc+1

            else:
                                ni=ni+1

    i=i+1
precision = pc/(pc+pi)
recall = pc/(ni+pc) 

这段代码是关于情绪分析。当我试图找到准确性并召回时,我得到 ZeroDivisionError:浮零除零

1 个答案:

答案 0 :(得分:0)

不知道这对你的案例是否是一个好主意,解决这个问题的一种方法是做一些像

这样的事情。
precision = pc/(pc+pi) if (pc+pi) else 0
recall = pc/(ni+pc) if (ni+pc) else 0

在没有任何可分的情况下会给出零。可能是你需要的,可能是可怕的隐藏真正的错误。

编辑:如果你的数据让你每次都取“neg”分支,pc和pi将为零,所以你将得到div / 0错误

precision = pc/(pc+pi)

...这就是原因