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:浮零除零?
答案 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)
...这就是原因。