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

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

#coding=utf-8
import sys
reload(sys)
sys.setdefaultencoding("utf-8")
import jieba
import jieba.analyse
output=open('words.csv','a') 
output.write('词语,词频,词权\n')  
stopkeyword=[line.strip() for line in open('stop.txt').readlines()]  #将停止词文件保存到列表
text = open(r"new.txt","r").read()          #导入需要计算的内容
zidian={}
fenci=jieba.cut_for_search(text)
for fc in fenci:
        if fc in zidian:                
                zidian[fc]+=1
        else:
                # zidian.setdefault(fc,1)   #字典中如果不存在键,就加入键,键值设置为1
                zidian[fc]=1
tfidf=jieba.analyse.extract_tags(text,topK=30,withWeight=True)

for word_weight in tfidf:
    if word_weight in stopkeyword: 
        pass
    else:                                   #不存在的话就输出
        print word_weight[0],zidian.get(word_weight[0],'not found'),str(int(word_weight[1]*100))+'%'
        output.write('%s,%s,%s\n'%(word_weight[0],zidian.get(word_weight[0],'not found'),str(int(word_weight[1]*100))+'%'))

发表评论

电子邮件地址不会被公开。