数学之路(3)-机器学习(3)-机器学习算法-余弦相似度(2)
从上一节可以看到,分词效果虽然不错,但是结果中仍有很多标点符号,也有一些词,比如说:应该、如果、所有等词这些词并不能代表文章的主题,我们不应把它们做为文本的特征项之一,而文本所有特征项组织一个向量,通过余弦相似度对文本类似性进行检测,所以要保证每个特征项有它的作用,这些无用的词称为停用词,我们建立一个停用词表文件,将里面所有的停用词读取后做为下一步对文本分词结果进行清理的依据
#读取待测试文本 mytest1_words=copy.deepcopy(test_words) for myword in ftest1_seg_list: print ".", if not(myword.strip() in f_stop_seg_list): if mytest1_words.has_key(myword): mytest1_words[myword]+=1 mytest2_words=copy.deepcopy(test_words) for myword in ftest2_seg_list: print ".", if not(myword.strip() in f_stop_seg_list): if mytest2_words.has_key(myword): mytest2_words[myword]+=1 #计算样本与待测试文本的余弦相似度 sampdata=[] test1data=[] test2data=[] for key in all_words.keys(): sampdata.append(all_words[key]) test1data.append(mytest1_words[key]) test2data.append(mytest2_words[key]) test1simi=get_cossimi(sampdata,test1data) test2simi=get_cossimi(sampdata,test2data) print "\nhttp://blog.csdn.net/myhaspl" print u"%s与样本[%s]的余弦相似度:%f"%(ftest1fn,sampfn,test1simi) print u"%s与样本[%s]的余弦相似度:%f"%(ftest2fn,sampfn,test2simi)
运行结果如下:
>>> runfile(r'I:\book_prog\text_fl.py', wdir=r'I:\book_prog')
http://blog.csdn.net/myhaspl
myhaspl@qq.com
loading ...
working . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
http://blog.csdn.net/myhaspl
mobile2.txt与样本[war2.txt]的余弦相似度:0.160806
war1.txt与样本[war2.txt]的余弦相似度:0.264215
>>>
余弦相似度越小,说明越相似,从上面结果可以看出war1与war2更相似,事实也是如此,2个文本都关于军事题材的