上一篇簡單的介紹jieba分詞功能以及如何去增加詞庫達到更精準之分詞。
本篇介紹-擷取特徵詞與其TF-IDF值
#程式碼
#encoding=utf-8
#============================================================特徵詞 與TF-IDF值
import jieba
from jieba.analyse import extract_tags as et
import codecs
from time import time
from operator import itemgetter
content = codecs.open('D:/input_file.txt', 'rb',encoding='UTF-8').read()#open files
myfile=codecs.open(r'D:/output_file.txt','w','utf-8')
tag=list(et(content,topK=50, allowPOS=['n','ns','nr','na'],withWeight=True))
tag1=jieba.analyse.textrank(content, withWeight=True)
#TD-IDF
for t in tag:
print(u'方法1'": %s\t\t weight: %f" % (t[0],t[1]))
#Textrank
for x, w in tag1:
print(u'方法2'": %s\t\t weight: %f" % (x, w))
# 程式碼解說
關鍵詞擷取方式分為以下兩種:
TF-IDF關鍵詞擷取 :
tag=list(et(content,topK=50, allowPOS=['n','ns','nr','na'],withWeight=True))
- content:放入分析之本文
- topK:你要取回多少個關鍵詞(依TF/IDF權重排序高到低,Default為20個)
- allowPOS:僅取回指定詞性的詞,Default為不篩選
- withWeight:是否一併取回關鍵詞權重值,Default為False
Textrank關鍵詞擷取 :
tag1=jieba.analyse.textrank(content, withWeight=True)
- 與以上用法相同
至於想要比較兩種方式可以參考下面的文章:
#Output
tag: 玩家 weight: 0.783507 tag: 游戏 weight: 0.625125 tag: 客服 weight: 0.565407 tag: 公司 weight: 0.533137 tag: 论坛 weight: 0.420502 tag: 信誉 weight: 0.381856 tag: 大赛 weight: 0.380071 tag: 速度 weight: 0.362998 tag: 平台 weight: 0.271493 tag: 态度端正 weight: 0.259886 tag: 问题 weight: 0.258490 tag: 宠幸 weight: 0.221996 tag: 支付宝 weight: 0.219924 tag: 粉丝 weight: 0.202515 tag: 账号 weight: 0.202076 tag: 信赖 weight: 0.184936 tag: 排队 weight: 0.175409 tag: 一流 weight: 0.172379 tag: 存款 weight: 0.153762 tag: 实力 weight: 0.140408 tag: 质量 weight: 0.125980 tag: 声音 weight: 0.115692
從各大論壇爬網內文,經由文字探勘方法就可以擷取使用者對產品之特徵詞
像是客服、信譽、平台等,此階段還無法知道使用者對於產品評價好壞,下一篇將會介紹找出關鍵詞前後距離之詞彙,並擷取意見詞進行評分。