Python 零除法误差浮点除法误差 ctr=0.0 i=0 pc=0.0 pi=0.0 nc=0.0 ni=0.0 对于fileinput.input(['/pro/file1'])中的行: 行=行。替换(“\n”和“”) 如果(i0): ctr=ctr+1 pc=pc+1 其他: pi=pi+1 elif(修订版[i]中的“无”): 如果(浮动(线)

Python 零除法误差浮点除法误差 ctr=0.0 i=0 pc=0.0 pi=0.0 nc=0.0 ni=0.0 对于fileinput.input(['/pro/file1'])中的行: 行=行。替换(“\n”和“”) 如果(i0): ctr=ctr+1 pc=pc+1 其他: pi=pi+1 elif(修订版[i]中的“无”): 如果(浮动(线),python,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

这段代码是关于情绪分析的。当我试图找到准确度和回忆时,我得到了零除法错误:浮点零除法。如何修复它???

不知道这对你的情况是否是个好主意,解决这个问题的一个方法是

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) 
如果没有可除的值,则该值为零。可能是你需要的,可能是可怕地隐藏了一个真正的错误

编辑:如果您的数据使您每次都使用“neg”分支,则pc和pi将为零,因此您将在

precision = pc/(pc+pi) if (pc+pi) else 0
recall = pc/(ni+pc) if (ni+pc) else 0

…这就是原因。

不被零除吗?
revs
来自哪里?也许你应该问@PavelAnossov revs是编码的一部分。这里我只给出了错误的部分!
precision = pc/(pc+pi)