情感分析(支持向量機,邏輯迴歸)

以某寶購物評論爲例(表分爲好評和差評)

好評
df = pd.read_excel("F:/文本大數據/購物評論.xlsx",sheet_name="正向",header=None)
df

在這裏插入圖片描述

標記爲1
df['class']=1
df.head()

在這裏插入圖片描述

差評
df1 = pd.read_excel("F:/文本大數據/購物評論.xlsx",sheet_name="負向",header=None)
df1

在這裏插入圖片描述

標記爲0
df1['class']=0
df1.head()

在這裏插入圖片描述

合併
df2 = df.append(df1,ignore_index=True)
df2

在這裏插入圖片描述

分詞和預處理

import jieba
cuttxt = lambda x:" ".join(jieba.lcut(x))
df2["segment"]=df2[0].apply(cuttxt)
df2.head()

在這裏插入圖片描述

詞袋模型

from sklearn.feature_extraction.text import CountVectorizer
# 詞袋模型
countvec = CountVectorizer()
countvec = countvec.fit_transform(df2["segment"])
countvec

在這裏插入圖片描述

from sklearn.model_selection import train_test_split
x_train,x_test,y_train,y_test = train_test_split(countvec,df2['class'],test_size=0)
x_train

在這裏插入圖片描述

from sklearn.svm import SVC
clf = SVC()# 支持向量機
clf.fit(x_train,y_train)

在這裏插入圖片描述

clf.score(x_train,y_train)

在這裏插入圖片描述

這裏會花較長的時間,需要耐心等待!
如果想提高準確率可以通過改變參數:

在這裏插入圖片描述

邏輯迴歸模型

from sklearn.linear_model import LogisticRegression
logistic = LogisticRegression()
logistic.fit(x_train,y_train)

在這裏插入圖片描述

logistic.score(x_train,y_train)

在這裏插入圖片描述

模型評估

SVM
from sklearn.metrics import classification_report
print(classification_report(y_test,clf.predict(x_test)))
s = """輸入你想預測的評論"""
s_seg = " ".join(jieba.lcut(s))
s_seg_vec = countvec.transform([s_seg])
result = clf.predict(s_seg_vec)
result
邏輯迴歸
from sklearn.metrics import classification_report
print(classification_report(y_test,logistic.predict(x_text)))
s = """輸入你想預測的評論"""
s_seg = " ".join(jieba.lcut(s))
s_seg_vec = countvec.transform([s_seg])
result = logistic.predict(s_seg_vec)
result
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章