首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > perl python >

请帮忙望一段python小程序

2013-06-19 
请帮忙看一段python小程序说明line是str,voc_list1是list[def query_dict(line,voc_list1):q_dict {}idf

请帮忙看一段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值是不是在预设控制之下...

热点排行