本偏重點如下:
- 找出關鍵詞前後詞彙
 - 擷取意見詞
 - 評分
 
#程式碼
#===========================================找出關鍵詞前後距離的詞
import nltk
import jieba
import codecs
jieba.set_dictionary('/dict.txt')
content = codecs.open('input_file.txt', 'rb','utf-8').read()
token=nltk.word_tokenize(content)
text=nltk.Text(token)
list1=[text.concordance(u'客服',60,lines=all)]
#程式碼解說
concordance:找某個字之前後文,以本例子來說,找尋'客服'前後各30字元的詞彙
而要找尋的詞就是上一篇所找出來的關鍵詞,目的在於找出關鍵詞前後詞彙
Output:
 n 提款 v 速度 n 慢 adj 一点 m 在线 b 客服 n 说 v  肯定 v 客户 n 太多 ns 造成 v
分 n 招来 v 一点 m 最重 a 喜欢 v 盈盈 z 客服 n x Uedbet eng 娱乐城 n 已经 d 玩家
盈 z 放假 v 今天 t 及时 c 添加 v 彩金 n 客服 n 服务 vn 值得 v 推广 v UED eng
分 n 招来 v 一点 m 最重 a 喜欢 v 盈盈 z 客服 n x Uedbet eng 娱乐城 n 已经 d 玩家
盈 z 放假 v 今天 t 及时 c 添加 v 彩金 n 客服 n 服务 vn 值得 v 推广 v UED eng
以上是程式碼跑出一小部分結果, 如果斷詞上不滿意,或是詞性有問題,皆可手動去更改詞庫(已教學過)
接下來就要開始評分,而我評分標準如下(僅供參考,這部分每個人做法不同,可自行修改):
- 將Output結果,存放到Excel1,撰寫程式將關鍵詞後之形容詞、動詞、副詞截取出來(要截取詞性自行挑選),存放到Excel2。
 - 將Excel2結果,透過情緒詞庫分辨負面情緒或是正面情緒,分別給予分數(正+1,負-1)。
	
- 提供情緒詞庫網址下載,情緒詞庫一樣可以手動更新。
 - 分數可自行定義
 
 - 累積並計算此關鍵詞之分數(程式碼如下)。
 
#python读取excel
import xlrd
import codecs
from nltk.corpus import stopwords
def main():
    myfile1=stopwords.words('/NTUSD_positive_simplified.txt')
    myfile2=stopwords.words('/NTUSD_negative_simplified.txt')
    xls=xlrd.open_workbook("C:\FileName.xlsx")
    try:
        mysheet=xls.sheet_by_name("SheetName")#找工作表。
    except:
        print("没有此工作表")
        return
    print("共有 %d 行, %d 列。"%(mysheet.nrows,mysheet.ncols))
#將内容印出来:  
    for row in range(0,mysheet.nrows):
        for col in range(0,mysheet.ncols):
            if mysheet.cell(row,col).value not in [None, ''] :
                temp=mysheet.cell(row,col).value
                if  type(temp) != float :
                    print temp,
                    if temp in myfile1 :
                        print " +1",
                    if temp in myfile2:
                        print " -1",                        
        print '\n'                                                    
if __name__=='__main__':
    main()
myfile1與2為載入情緒詞庫,由於關鍵詞前後詞彙存入excel,因此這邊會呼叫此工作表來作給分的動作
當詞彙與情緒詞庫相呼應時就會給予分數,如無法辨識詞彙,可手動自行加入,或是寫程式自動匯入
接下來就可以對每個關鍵字進行排名,評估這產品的評價與優劣。
Text Mining一直是相當熱門之議題,在大數據領域中也是占有一席之地,這系列文章讓大家初步了解jieba操作
還有興趣的讀者,可以一起討論