摘要:將不同的評分按分類放好分詞分詞是通過第三方的實現的。這對于計算相似度還是用作后續的分類器訓練后續有時間的話會實現基于的分類器都是十分有幫助的。
Chinese-sentiment-analysis-with-Doc2Vec 簡介
中文語料的情感分析基本步驟如下:
爬取相關的語料或者下載相關語料(本文使用了對于賓館評價的相關語料作為例子)
將語料進行預處理并分詞
用某種量化的表達形式來對語料進行數字化處理
基于監督學習的分類器訓練
開發環境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數據,當然你也可以直接在加載語料時將部分數據用作測試數據(詳見后文)。
數據預處理(preprocess.py)zip數據中為大量的txt文檔,每一個的后綴是評分,例如72_1380108_2006-11-9_1.0.txt,那么該評分為1.0分(其實就是差評啦)。我們需要做的是將所有評分劃分為1、2、3、4,5檔,顧名思義就是評價由壞到好。這里用了一些簡單的字符串處理來獲取分數并使用round函數來對分數取整。
將不同的評分txt按folder分類放好
分詞(words_segment.py)分詞是通過第三方的jieba實現的。
分詞之前需要做一些簡單的處理,比如過濾一些不感興趣的字符。
filter_chars = " ,。;!,.:;:、" trans_dict = dict.fromkeys((ord(_) for _ in filter_chars), "") line = line.translate(trans_dict)
將分完詞的語料按照分數歸并到同一個文本做為訓練做準備
文本向量化模型(main.py:step 1-3)這里只要使用到了gensim.models.doc2vec,該模塊提供了將不定長的文本映射到維度大小固定的向量的功能。這對于計算相似度還是用作后續的CNN分類器訓練(后續有時間的話會實現基于TensorFlow的分類器)都是十分有幫助的。
具體的原理可以參考distributed-representations-of-sentences-and-documents
gensim doc2vec
本文旨在通過簡單的示例介紹如何通過訓練模型來自動判斷某個新的輸入評價是好評(5分)還是差評(1分),所以在后續的代碼中,使用的樣本就來自于這兩類樣本的集合(后續有時間的話會繼續實現多分類問題)
訓練分類器(main.py:step 4-5)這里使用了sklearn中的分類器(LR、SVM、決策樹等等,最新版本的sklearn還提供了NN的實現)。具體參考scikit-learn。
數據的標記十分簡單,將5分的訓練集標記為1,1分的訓練集標記為0即可(如果實現多分類,按照分數標記即可。)
其中我把20%的訓練集抽出作為測試數據:
train, test, train_label, test_label = ms.train_test_split( train_arrays, train_labels, test_size=0.2)
最后進行驗證,一般>0.6就認為是一個有不錯預測能力的模型了
新樣本預測(prediction.py)通過加載之前訓練的model和分類器對測試樣本進行預測
同時記錄了每一個測試樣本最近似的訓練樣本
后續工作實現多分類
基于TF的CNN分類器
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/44519.html
摘要:在自然語言處理中,一個很重要的技術手段就是將文檔轉換為一個矢量,這個過程一般是使用這個庫進行處理的。自然語言處理中,一般來說,代表詞。自然語言預處理中,一個很重要的步驟就是將你收集的句子進行分詞,將一個句子分解成詞的列表。 前言 本文根據實際項目撰寫,由于項目保密要求,源代碼將進行一定程度的刪減。本文撰寫的目的是進行公司培訓,請勿以任何形式進行轉載。由于是日語項目,用到的分詞軟件等,在...
閱讀 3967·2021-11-24 09:38
閱讀 1234·2021-10-19 11:42
閱讀 1834·2021-10-14 09:42
閱讀 2159·2019-08-30 15:44
閱讀 549·2019-08-30 14:04
閱讀 2897·2019-08-30 13:13
閱讀 1956·2019-08-30 12:51
閱讀 964·2019-08-30 11:22