[Text Mining]JIEBA介紹與教學-Part2

  • 1186
  • 0
  • 2016-08-25


上一篇簡單的介紹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

 從各大論壇爬網內文,經由文字探勘方法就可以擷取使用者對產品之特徵詞

像是客服、信譽、平台等,此階段還無法知道使用者對於產品評價好壞,下一篇將會介紹找出關鍵詞前後距離之詞彙,並擷取意見詞進行評分