語義分析之情感分析
inputfile = r'D:\資料分析實戰\原始資料\JD_data.xlsx'
outputfile = r'D:\資料分析實戰\原始資料\comment1.txt'data = pd.read_excel(inputfile)
data = data[u'評論內容']
pd.set_option('display.width', 1000, 'max_colwidth',500,'max_rows',1000) # 設定字元顯示寬度及最大行數,可以參考pandas官方文件#一開始對於檔案的處理,輸出的字元大概只有50個字左右,而且上千條評論是是顯示不全的,所以中間是以省略號輸出的#這裡就是使之全部一字不落的輸出到文件中。f = open(outputfile, 'w',encoding='utf-8')#最後一個是設定的字型的樣式,格式是個很大問題,有些格式是無法顯示的,所以單獨的檔案格式的處理顯得較為麻煩,這裡#再檔案開啟的時候就對其進行檔案格式的選擇,這樣就可以避免一些相關問題。
f.write(str(data)) #要以字串的形式把評論寫入txt中
f.close()#下面是對每一條評論輸出相應的情感分析結果#這裡用的Bosonnlp包,其官方文件有詳細的解釋,用法上面已經介紹的很詳細了。from __future__ import print_function, unicode_literals
import json
import requestsoutputfile = 'D:\資料分析實戰\原始資料\emotion_analysis.txt'
HEADERS = {'X-Token': 'WIVbbNqJ.24834.jhOxYg7JLa8B'}
SENTIMENT_URL = 'http://api.bosonnlp.com/sentiment/analysis'file = open(outputfile, "ab") with open('D:\資料分析實戰\原始資料\comment1.txt', 'rb') as f:
docs= [line.decode('utf-8') for line in f if line]
#這裡已經可以獨處按數值標記的評論了。
for i in range(0, 3, 1):#這裡修改數值可以隨意生成
data = json.dumps(docs[i])
response = []
response.append(requests.post(SENTIMENT_URL, headers=HEADERS,
data=data.encode('utf-8')))
#先建一個空的list再把生成的資料對應的加入到這個list裡面
#再把這個list資料跟data一一對應的加入到字典裡面。
response_with_data=dict(zip(response, data))
#zip是將data與response生成一一對應的元組,再結合成一個列表,這裡對於zip函式的處理也是一個需要注意的地方。
#強制轉化成了字典
for each in response_with_data:
for ec in each:
file.write(ec)#這裡將情感分析資料寫入檔案中
print(ec)#你也可以根據這個輸出結果copy
f.close()#我的初衷是想輸出一個結合評論及分數一起的文件,但是挺起來很容易的事情,實現起來困難還是不曉得,如果哪位大神有想法,可以在下面附上自己的程式碼,十分感謝,不吝賜教。
希望可以好好習得cs。