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