Python结巴分词计算高频词及TFIDF

用Python写脚本比较挺容易上瘾,呵呵、主要是比较容易忽略SEO这一块,有时会感觉是为了技术而技术,小小感想,小弟做百度seo可能很多人比起来都比较短呢,有时候接一下单子也只是为了保持对这个行业的认知新鲜度,自己也看到很多搜索引擎原理相关方面的书,对写网络引用方面的小程序还算比较顺手,但毕竟非专科,脚本很多时候都很粗糙,但是后面也有人说做seo嘛能用脚本解决问题就好,本来还打算更新学习Javascript这块,感觉时间和精力都不够,苦逼青年啊!另外等博客权重上来,排名上来的话,流量也可以的话再更新一些多一点Python脚本。
结巴分词这个模块很好用,用这个都可以自己写一些关键词分组工具等,对管理词库有很多的帮助,分词,去停止词,提取高频词,去重等SEO词库管理方面的应用,都直接或间接可以利用到结巴分词这个库,具体结巴的函数方法可以去GitHub上自行补脑一下先,下面我直接代码一下:
结巴分词

 

 1 #coding=utf-8
 2 import sys
 3 reload(sys)
 4 sys.setdefaultencoding("utf-8")
 5 import jieba
 6 import jieba.analyse
 7 output=open('words.csv','a') 
 8 output.write('词语,词频,词权\n')  
 9 stopkeyword=[line.strip() for line in open('stop.txt').readlines()]  #将停止词文件保存到列表
10 text = open(r"new.txt","r").read()          #导入需要计算的内容
11 zidian={}
12 fenci=jieba.cut_for_search(text)
13 for fc in fenci:
14         if fc in zidian:                
15                 zidian[fc]+=1
16         else:
17                 # zidian.setdefault(fc,1)   #字典中如果不存在键,就加入键,键值设置为1
18                 zidian[fc]=1
19 tfidf=jieba.analyse.extract_tags(text,topK=30,withWeight=True)
20  
21 for word_weight in tfidf:
22     if word_weight in stopkeyword: 
23         pass
24     else:                                   #不存在的话就输出
25         print word_weight[0],zidian.get(word_weight[0],'not found'),str(int(word_weight[1]*100))+'%'
26         output.write('%s,%s,%s\n'%(word_weight[0],zidian.get(word_weight[0],'not found'),str(int(word_weight[1]*100))+'%'))

 

posted @ 2017-04-13 16:09  l4617  阅读(1663)  评论(0)    收藏  举报