摘要:將不同的評分按分類放好分詞分詞是通過第三方的實現(xiàn)的。這對于計算相似度還是用作后續(xù)的分類器訓練后續(xù)有時間的話會實現(xiàn)基于的分類器都是十分有幫助的。
Chinese-sentiment-analysis-with-Doc2Vec 簡介
中文語料的情感分析基本步驟如下:
爬取相關(guān)的語料或者下載相關(guān)語料(本文使用了對于賓館評價的相關(guān)語料作為例子)
將語料進行預處理并分詞
用某種量化的表達形式來對語料進行數(shù)字化處理
基于監(jiān)督學習的分類器訓練
開發(fā)環(huán)境Python-v3(3.6):
gensim==3.0.1 jieba==0.39 scikit-learn==0.19.1 tensorflow==1.2.1 numpy==1.13.1+mkl
示例代碼參考Chinese-sentiment-analysis-with-Doc2Vec
https://github.com/lybroman/C...
在repo中有兩個zip文件分別為train.zip和test.zip數(shù)據(jù),當然你也可以直接在加載語料時將部分數(shù)據(jù)用作測試數(shù)據(jù)(詳見后文)。
數(shù)據(jù)預處理(preprocess.py)zip數(shù)據(jù)中為大量的txt文檔,每一個的后綴是評分,例如72_1380108_2006-11-9_1.0.txt,那么該評分為1.0分(其實就是差評啦)。我們需要做的是將所有評分劃分為1、2、3、4,5檔,顧名思義就是評價由壞到好。這里用了一些簡單的字符串處理來獲取分數(shù)并使用round函數(shù)來對分數(shù)取整。
將不同的評分txt按folder分類放好
分詞(words_segment.py)分詞是通過第三方的jieba實現(xiàn)的。
分詞之前需要做一些簡單的處理,比如過濾一些不感興趣的字符。
filter_chars = " ,。;!,.:;:、" trans_dict = dict.fromkeys((ord(_) for _ in filter_chars), "") line = line.translate(trans_dict)
將分完詞的語料按照分數(shù)歸并到同一個文本做為訓練做準備
文本向量化模型(main.py:step 1-3)這里只要使用到了gensim.models.doc2vec,該模塊提供了將不定長的文本映射到維度大小固定的向量的功能。這對于計算相似度還是用作后續(xù)的CNN分類器訓練(后續(xù)有時間的話會實現(xiàn)基于TensorFlow的分類器)都是十分有幫助的。
具體的原理可以參考distributed-representations-of-sentences-and-documents
gensim doc2vec
本文旨在通過簡單的示例介紹如何通過訓練模型來自動判斷某個新的輸入評價是好評(5分)還是差評(1分),所以在后續(xù)的代碼中,使用的樣本就來自于這兩類樣本的集合(后續(xù)有時間的話會繼續(xù)實現(xiàn)多分類問題)
訓練分類器(main.py:step 4-5)這里使用了sklearn中的分類器(LR、SVM、決策樹等等,最新版本的sklearn還提供了NN的實現(xiàn))。具體參考scikit-learn。
數(shù)據(jù)的標記十分簡單,將5分的訓練集標記為1,1分的訓練集標記為0即可(如果實現(xiàn)多分類,按照分數(shù)標記即可。)
其中我把20%的訓練集抽出作為測試數(shù)據(jù):
train, test, train_label, test_label = ms.train_test_split( train_arrays, train_labels, test_size=0.2)
最后進行驗證,一般>0.6就認為是一個有不錯預測能力的模型了
新樣本預測(prediction.py)通過加載之前訓練的model和分類器對測試樣本進行預測
同時記錄了每一個測試樣本最近似的訓練樣本
后續(xù)工作實現(xiàn)多分類
基于TF的CNN分類器
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/44519.html
摘要:在自然語言處理中,一個很重要的技術(shù)手段就是將文檔轉(zhuǎn)換為一個矢量,這個過程一般是使用這個庫進行處理的。自然語言處理中,一般來說,代表詞。自然語言預處理中,一個很重要的步驟就是將你收集的句子進行分詞,將一個句子分解成詞的列表。 前言 本文根據(jù)實際項目撰寫,由于項目保密要求,源代碼將進行一定程度的刪減。本文撰寫的目的是進行公司培訓,請勿以任何形式進行轉(zhuǎn)載。由于是日語項目,用到的分詞軟件等,在...
摘要:而檢驗模型用到的原材料,包括薛云老師提供的蒙牛牛奶的評論,以及從網(wǎng)絡(luò)購買的某款手機的評論數(shù)據(jù)見附件。不同行業(yè)某些詞語的詞頻會有比較大的差別,而這些詞有可能是情感分類的關(guān)鍵詞之一。這是由于文本情感分類的本質(zhì)復雜性所致的。 文本情感分類--傳統(tǒng)模型(轉(zhuǎn)) showImg(https://segmentfault.com/img/bVKjWF?w=2192&h=534); 傳統(tǒng)的基于情感詞典...
閱讀 4042·2021-11-24 09:38
閱讀 1342·2021-10-19 11:42
閱讀 1899·2021-10-14 09:42
閱讀 2213·2019-08-30 15:44
閱讀 605·2019-08-30 14:04
閱讀 2958·2019-08-30 13:13
閱讀 2022·2019-08-30 12:51
閱讀 1030·2019-08-30 11:22