Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么一个贝叶斯评价函数有效而另一个无效?我的观点也是如此,我必须知道原因_Python_File_Machine Learning - Fatal编程技术网

Python 为什么一个贝叶斯评价函数有效而另一个无效?我的观点也是如此,我必须知道原因

Python 为什么一个贝叶斯评价函数有效而另一个无效?我的观点也是如此,我必须知道原因,python,file,machine-learning,Python,File,Machine Learning,我不明白为什么第一个例子不起作用,第二个却起作用。它们都是相同的代码,很高兴知道为什么它不起作用,谢谢帮助 def naive_bayes_eval(test_sms_file, f): Precision=1 est_spam =0 pas_spam =0 nbr_spam =0 for ligne in open(test_sms_file, 'r').readlines(): if("spam" in ligne):

我不明白为什么第一个例子不起作用,第二个却起作用。它们都是相同的代码,很高兴知道为什么它不起作用,谢谢帮助

def naive_bayes_eval(test_sms_file, f):
    Precision=1
    est_spam =0
    pas_spam =0
    nbr_spam =0

    for ligne in open(test_sms_file, 'r').readlines():
        if("spam" in ligne):
            nbr_spam = nbr_spam + 1
            if f(ligne.replace('spam',''))== 1:
                est_spam=est_spam+1
        if("ham" in ligne):
            if( f(ligne.replace('ham',''))== 1):
                pas_spam = pas_spam+1
    recall = est_spam/nbr_spam;         
    if (est_spam + pas_spam)>0:
        Precision = est_spam/(est_spam + pas_spam)
    return(recall,Precision)

你是说第一个有效,而第二个无效

def naive_bayes_eval(test_sms_file, f):
    ...
    f=open(test_sms_file, 'r')

这一行覆盖了
f
参数。

您能澄清一下“不工作”是什么意思吗?是否存在错误、异常等。应该是相反的-第二行应该中断,因为您用文件覆盖了
f
,从而中断了
f(ligne.replace('spam','')
。。。
def naive_bayes_eval(test_sms_file, f):
    ...
    f=open(test_sms_file, 'r')