零除错误 - 浮点除法错误
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:Float division by zero的错误。这是什么意思呢?就是在计算的时候,出现了除以零的情况,导致程序无法继续运行。我该怎么解决这个问题呢?
1 个回答
0
我不知道这对你的情况是否合适,但解决这个问题的一种方法是这样做:
precision = pc/(pc+pi) if (pc+pi) else 0
recall = pc/(ni+pc) if (ni+pc) else 0
这样做的话,如果没有东西可以去除,就会得到一个零。这个结果可能是你需要的,也可能是在掩盖一个真正的错误。
补充一下:如果你的数据每次都让你走“负”的那条路,那么 pc 和 pi 就会是零,这样在这里就会出现除以零的错误:
precision = pc/(pc+pi)
...所以这就是问题的根源。