python進行情感分析

一、數據獲取

在天貓爬取斯凱奇品牌下的男鞋店鋪共5或6個,除去重複評論後,共條,放在Excel文件。

二、文本預處理

import pandas as pd
import numpy as np
import jieba
import warnings


warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim')
outputfile=r'F:\數據分析與模型\畢業論文\代碼\data\review_uniqe.txt'
data=pd.read_excel('F:\數據分析與模型\畢業論文\斯凱奇5、6個店鋪評論(僅評論).xlsx',header=None)#header=None的作用是在導入時不讓第一行文本成爲列索引,在導出時的作用是CSV文件裏不包含列索引字段(如0,1,2,3等)
data=pd.DataFrame(data)


#文本去重
data=pd.DataFrame(data[0].unique())
data.to_csv(outputfile,index=False,header=None,encoding='UTF-8')


#數據重新導入
data=pd.read_csv(outputfile, encoding = 'utf-8', header = None)


#分詞
mycut = lambda s: ' '.join(jieba.cut(s)) #自定義簡單分詞函數,以空格分詞
data1=data[0].apply(mycut)
#因爲無列名,只有0、1這樣的列索引,所以dataframe直接調用data[0]
#data格式爲Dataframe([35634 rows x 1 columns]),data[0]格式爲Series(Name: 0, dtype: object,第一行評論index爲0),data1爲分詞後的一個series,data1[0]取第一行


#去除停用詞
stoplist='F:\數據分析與模型\畢業論文\代碼\stoplist.txt'
stop = pd.read_csv(stoplist, encoding = 'utf-8', engine='python',header = None, sep = 'tipdm')
#sep設置分割詞,由於csv默認以半角逗號爲分割詞,而該詞恰好在停用詞表中,因此會導致讀取出錯
#所以解決辦法是手動設置一個不存在的分割詞,如tipdm。
stop = [' ', '','\n'] + list(stop[0])#Pandas自動過濾了空格符
data2=data1.apply(lambda s: s.split(' ')) # 返回一個由空格分割的列表['商品','很棒','快遞',...]
data3=data2.apply(lambda x: [i for i in x if i not in stop])#x是指data2
#逐詞判斷是否停用詞,思路同上  
#上面這句代碼的語法是:列表推導式子。意思是說,如果i不在停用詞列表(stop)中,就保留該詞語(也就是最前面的一個i),否則就進行刪除  
#上面的這句代碼中,把for i in x看做整體,把if i not in stop看做判斷語句,把最前面的i看做滿足if語句之後的執行語句即可。  
#data2爲series,如何將多個series合併爲dataframe


#去除字數<某閾值的評論
data4=[]#33533條
for i in data3:
    a=''.join(i)#轉爲字符串
    b=len(a)
    if b>=4 and a!='用戶填寫評論' and a!='初次評論':
        data4.append(a)
data5=pd.DataFrame(data4)


#重新分詞、去重
data6=data5[0].apply(mycut)#data5[0]爲series
data6=pd.DataFrame(data6.unique())
data6.to_csv('F:\數據分析與模型\畢業論文\代碼\data\data_process_last.txt',header=None,index=False,encoding='UTF-8')

三、word2vec訓練

1、產品特徵詞庫建立

一方面將從某品牌顯示器說明書和其官網產品詳情頁中人工抽取顯示器領域特徵詞,另一方面利用 Word2vec語詞聚類法從海量的用戶評論中尋找特徵詞關聯詞彙,擴充完善產品特徵詞庫。

步驟猜測:人工抽取的詞語放到一個TXT裏,然後通過導入文本文件後,再建立word2vec模型。(接下來要進行的是瞭解word2vec原理及如何通過它來找出特徵詞關聯詞)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章