Tensorflow實現微博的評論情感分類模型

學習研究項目:基於微博評論的數據挖掘與情感分析

Github地址:情感分類模型源碼python

項目簡介

學習卷積神經網絡,循環神經網絡在實際環境下的應用,提高實踐能力,瞭解深度學習在天然語言處理方面的進展linux

cnn_for_text_classify

具有較強的自動關鍵詞提取能力,在酒店評論測試集上達到95%的準確率
採用l2正則和dropout來控制過擬合現象
4種卷積核使其能提取局部高效的短特徵 git

lstm_for_text_classify

具備較強的對長難句,反問句,陰陽怪氣句的判斷能力,在在酒店評論測試集上達到97%的準確率
採用雙向LSTM網絡
對輸入數據進行dropout,模擬增大樣本空間
LSTM層與層之間進行dropout
對LSTM網絡權重,偏置進行l2正則,抗過擬合
網絡採用正交初始化,加快收斂速度,提高訓練集上的正確率,大幅提高測試集上的正確率
採用Clipping Gradients,防止梯度爆炸,提高測試集上的正確率github

word2vec:

項目使用的詞向量:embedding_64.bin(1.5G)
訓練語料:百度百科800w條 20G+搜狐新聞400w條 12G+小說:90G左右
模型參數:window=5 min_count=5 size=64
下載連接:百度網盤連接 密碼:wzqvweb

文件功能介紹

./
weibo.py:微博評論爬蟲
readdata.py:爲情感分析模型提供多種數據加載相關API
word2vec.py:爲情感分析模型提供多種詞向量的相關API
cnn_model.py:CNN文本分類模型圖結構
cnn_train.py:CNN文本分類訓練代碼
cnn_test.py: CNN文本分類測試代碼
lstm_model.py:lstm文本分類模型圖結構
lstm_train.py:lstm文本分類訓練代碼
lstm_test.py: lstm文本分類測試代碼
mixed_cnn_lstm_test.py:採用模型融合方式將cnn與lstm的結果進行融合投票絕對最終結果windows

./data
pos.txt:正面評價數據集
neg.txt:負面評價數據集
test.txt:本身放樣本測試
embedding_64.bin:訓練好的詞向量模型
/cnn:cnn模型訓練完成的相關數據參數
/lstm:lstm模型訓練完成的相關數據參數 網絡

推薦運行環境

python 3.6
tensorflow-gpu 1.4
gensim 3.3
Ubuntu 64 Bit / windows10 64 Bit svg

使用模型注意事項

1.文本TXT文件必須採用UTF-8編碼格式,非UTF-8格式的,去記事本中另存爲的時候選擇UTF-8
2.pos.txt、neg.txt、test.txt 文件一行爲一條評論,長度不限,能夠有英文和標點(反正都會去除的),不要詞性標註信息
3.詞向量模型必定要用我放的那個64維度的bin文件
4.模型代碼在windows上測試過基本沒bug,linux平臺沒測試過,不過確定須要自行修改文件路徑 學習

模型結構

CNN模型優化

LSTM模型優化