读书人

请帮忙望一段python小程序

发布时间: 2013-06-19 10:26:41 作者: rapoo

请帮忙看一段python小程序
说明
line是str,voc_list1是list


[def query_dict(line,voc_list1):
q_dict = {}
idf1 = idf_term()
q_sum = 0

words = line.split()
for word in words:
q_sum += math.pow(idf1[word],2)
q_deno = math.sqrt(q_sum)
print q_deno

for word in voc_list1:
q_dict[word] = 0

for term in line:
q_dict[term] += idf1[term]/q_deno
return q_dict
[code=python]
]
为什么结果是0.0呢?
[解决办法]
问题出在:words = line.split()
line.split() 没有分隔符?
接下来的for语句没有执行
q_sum 还是初始值0
print q_deno 当然是0的平方= 0
[解决办法]

for word in voc_list1: ## voc_list1 中是单词还是单个字母?
q_dict[word] = 0

for term in line: ## 这样来取line,每次取的是line中的一个字母,你的本意应该是要取一个单词吧?
q_dict[term] += idf1[term]/q_deno

[解决办法]
自己学习调试,譬如就用idle打开你的脚本,shell窗口debug->debuger进入调试模式,然后编辑窗口for word in words:那行右键设断点,F5执行后在debug窗口按go就会停在断点上,你可以看看相关变量idf1,words值是不是在预设控制之下...

读书人网 >perl python

热点推荐