網(wǎng)絡(luò)有很多的“機(jī)器學(xué)習(xí)入門”和“深度學(xué)習(xí)入門”的課程,初學(xué)啊掏,利用示例代碼和別人已經(jīng)處理好的clean data來做練習(xí)蠢络,感覺很順暢,可每當(dāng)要自己單飛之時(shí)迟蜜,卻發(fā)現(xiàn)連最“趁手”的數(shù)據(jù)都沒有時(shí)谢肾,老夫?qū)嵲谑且荒樏H弧o法小泉,痛定思痛芦疏,從最真正的“入門”——數(shù)據(jù)預(yù)處理(或者“清洗”數(shù)據(jù))開始,將之間沒有踩過的坑微姊,一一踩過酸茴,彼時(shí),方能自稱“入門”了吧兢交。
當(dāng)前比較流行的神經(jīng)網(wǎng)絡(luò)架構(gòu)薪捍,就本質(zhì)而言,主要分為:CNN(Convolution Neural Network)卷積神經(jīng)網(wǎng)絡(luò)以及RNN(Recurrent Neural Network)遞歸神經(jīng)網(wǎng)絡(luò)兩類。本文針對的“數(shù)據(jù)”入門酪穿,是利用原始訓(xùn)練文本(或者叫訓(xùn)練語料)來生成詞向量(Word Vector)凳干。
本文使用的訓(xùn)練語料,來自《北京折疊》這部短篇小說被济。
首先導(dǎo)入必要的工具庫救赐。
import jieba
from gensim.models.word2vec import Word2Vec
本文使用jieba中文分詞工具只磷。
讀入原始語料,《北京折疊》文本预厌。
file = open('beijingzhedie', encoding='utf-8')
使用open打開文件時(shí)轧叽,切記在完成文件的所有操作后刊棕,要調(diào)用close函數(shù)鞠绰,關(guān)閉文件。
去除原始文本中的標(biāo)點(diǎn)符號屿笼,并替換為空格
cont = file.readline()
cont = cont.replace('驴一,', ' ')
cont = cont.replace('灶壶。', ' ')
cont = cont.replace('“', ' ')
cont = cont.replace('”', ' ')
cont = cont.replace('?', ' ')
cont = cont.replace(':', ' ')
cont = cont.replace('‘', ' ')
cont = cont.replace('’', ' ')
cont = cont.replace('胸懈!', ' ')
cont = cont.replace('……', ' ')
cont = cont.replace('趣钱、', ' ')
使用Jieba分詞工具胚宦,對中文語料進(jìn)行分詞。
seg_list = jieba.cut(cont)
sents = ' '.join(seg_list)
sents = sents.split()[1:]
具體的Jieba分詞工具使用方式井联,請查閱其官網(wǎng)烙常,或其Github Repository。需要注意的一點(diǎn)是轮蜕,sents = sents.split()[1:]
蝗锥,此代碼是去除utf-8編碼文件的開頭編碼的终议。
使用Gensim Word2Vec訓(xùn)練網(wǎng)絡(luò)葱蝗,得到詞向量。
w2v = Word2Vec(sents, iter=10, min_count=5, window=5, workers=2)
至此皂甘,即已經(jīng)得到了中文詞向量偿枕,后續(xù)將其送入RNN户辫,即可以開始網(wǎng)絡(luò)的訓(xùn)練了。