版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
趣味文本訓(xùn)練文本詞向量與詞匯計(jì)算情景導(dǎo)入現(xiàn)在市場(chǎng)上智能學(xué)習(xí)機(jī)器人特別火,小派的妹妹剛上幼兒園,于是他想要自己動(dòng)手做一款簡(jiǎn)易的機(jī)器人,作為生日禮物送給妹妹。其中有一個(gè)功能是關(guān)于漢語(yǔ)詞語(yǔ)的,比如人指定一個(gè)詞,找到它的同類詞;人指定多個(gè)詞,找到其中的異類詞等。于是,小派從詞向量開始了研究。實(shí)訓(xùn)目標(biāo)+1.熟悉詞的向量表示+2.掌握一種詞向量的調(diào)用方法+3.通過中文詞的詞向量來找到同類詞+4.通過中文詞的詞向量來判斷兩詞的相似度+5.通過中文詞的詞向量來找到一組詞中的異類詞+6.通過中文詞的詞向量實(shí)現(xiàn)詞匯加減法詞的向量化概念
?一個(gè)文本,經(jīng)過分詞之后,送入某一個(gè)自然語(yǔ)言處理模型之前該如何表示???例如,“人/如果/沒用/夢(mèng)想/,/跟/咸魚/還有/什么/差別”,向機(jī)器學(xué)習(xí)模型直接輸入字符串顯然是不明智的,不便于模型進(jìn)行計(jì)算和文本之間的比較。那么,我們需要一種方式來表示一個(gè)文本,這種文本表示方式要能夠便于進(jìn)行文本之間的比較、計(jì)算等。??在自然語(yǔ)言處理任務(wù)中,詞在計(jì)算機(jī)中的表示方法通常有兩種:離散表示(One-hotRepresentation)和分布式表示(DistributionRepresentation)。詞的編碼表示詞與向量間的轉(zhuǎn)換過程就叫作詞的向量化。自然語(yǔ)言理解的問題要轉(zhuǎn)化為機(jī)器學(xué)習(xí)的問題,第一步肯定是要找一種方法把這些符號(hào)數(shù)學(xué)化。詞向量是自然語(yǔ)言處理中常見的一個(gè)操作,是搜索引擎、廣告系統(tǒng)、推薦系統(tǒng)等互聯(lián)網(wǎng)服務(wù)背后常見的基礎(chǔ)技術(shù)。詞袋模型詞袋是一篇文檔中單詞出現(xiàn)的文本表示,它包含兩個(gè)信息:1.一個(gè)已知單詞構(gòu)成的字典2.一種已知單詞出現(xiàn)的度量
它之所以稱為詞“袋”,是因?yàn)樗魂P(guān)心單詞是否出現(xiàn),而且關(guān)于文檔中的單詞的順序和結(jié)構(gòu)信息都忽略掉了。直觀的感覺是,如果文檔具有相似的內(nèi)容,那么它們就是相似的。此外,僅從內(nèi)容我們就可以了解文檔的一些含義。
詞袋模型可以很簡(jiǎn)單,也可以很復(fù)雜。這主要取決于如何設(shè)計(jì)由已知單詞構(gòu)成的詞典以及如何對(duì)已知單詞的出現(xiàn)進(jìn)行評(píng)分。?由于one-hot編碼的缺陷,人們希望找到一種更好的詞向量表示方法,可以解決向量稀疏的問題,同時(shí)可以克服向量各個(gè)維度之間相互獨(dú)立的問題,即將詞表示為一個(gè)稠密的向量。主要有以下三種方式:1、基于統(tǒng)計(jì)數(shù)據(jù)的矩陣分解(LSA、COALS)2、基于滑動(dòng)窗口的預(yù)測(cè)模型(word2vec)3、以上兩種方法的結(jié)合(GloVe)分布式表示jieba庫(kù)分詞有3種模式1)`精確模式`:就是把一段文本精確地切分成若干個(gè)中文單詞,若干個(gè)中文單詞之間經(jīng)過組合,就精確地還原為之前的文本。其中不存在冗余單詞。2)`全模式`:將一段文本中所有可能的詞語(yǔ)都掃描出來,可能有一段文本它可以切分成不同的模式,或者有不同的角度來切分變成不同的詞語(yǔ),在全模式下,Jieba庫(kù)會(huì)將各種不同的組合都挖掘出來。分詞后的信息再組合起來會(huì)有冗余,不再是原來的文本。3)`搜索引擎模式`:在精確模式基礎(chǔ)上,對(duì)發(fā)現(xiàn)的那些長(zhǎng)的詞語(yǔ),我們會(huì)對(duì)它再次切分,進(jìn)而適合搜索引擎對(duì)短詞語(yǔ)的索引和搜索。Jieba庫(kù)介紹
jieba庫(kù)是優(yōu)秀的中文分詞第三方庫(kù),中文文本需要通過分詞獲得單個(gè)的詞語(yǔ)。
jieba庫(kù)的分詞原理:利用一個(gè)中文詞庫(kù),確定漢字之間的關(guān)聯(lián)概率,漢字間概率大的組成詞組,形成分詞結(jié)果。除了分詞,用戶還可以添加自定義的詞組。任務(wù)一訓(xùn)練文本詞向量模型點(diǎn)擊左側(cè)文件夾圖標(biāo),進(jìn)入“data-sets”目錄,可以看到壓縮文件‘wordvec.zip’,其中的reviews_train_101058.txt是我們用來訓(xùn)練詞向量的文本數(shù)據(jù)集。步驟一:解壓資源文件任務(wù)一訓(xùn)練文本詞向量模型Gensim是本項(xiàng)目使用的一個(gè)關(guān)鍵包,它是一款開源的Python工具包,對(duì)文本向量的變換是Gensim的核心。步驟二:導(dǎo)入包任務(wù)一訓(xùn)練文本詞向量模型本項(xiàng)目使用的數(shù)據(jù)是某平臺(tái)商品的評(píng)價(jià)記錄,在訓(xùn)練詞向量之前需要對(duì)中文句子進(jìn)行分詞,本項(xiàng)目使用jieba來分詞。步驟三:文本分詞預(yù)處理任務(wù)一訓(xùn)練文本詞向量模型將分詞結(jié)果輸入Gensim內(nèi)建的word2vec對(duì)象進(jìn)行訓(xùn)練。和算法有關(guān)的參數(shù)都在gensim.models.word2vec.Word2Vec類中,主要參數(shù)介紹如下:+`sentences`:分詞后的句子列表。+`min_count`:最小詞頻,默認(rèn)是5,少于min_count次數(shù)的詞會(huì)被丟棄,能去掉一些很生僻的低頻詞。+`window`:窗口大小,即詞向量上下文最大距離,默認(rèn)是5。+`workers`:用于訓(xùn)練的線程數(shù)。+`sg`:訓(xùn)練的核心算法,0代表skip-gram,1代表CBOW。+`iter`:訓(xùn)練的迭代輪數(shù)。步驟四:詞向量訓(xùn)練任務(wù)一訓(xùn)練文本詞向量模型步驟五:獲取模型中的詞和詞向量任務(wù)一訓(xùn)練文本詞向量模型步驟六:查看某個(gè)詞的詞向量在學(xué)習(xí)詞的向量化概念之后,相信大家都對(duì)詞的向量化有了自己的理解和認(rèn)知:1、詞是表義的一種基本單元。顧名思義,詞向量是用來表示詞的向量,也可被認(rèn)為是詞的特征向量。2、詞向量的獲取方式可以大體分為兩類:a.一類是基于統(tǒng)計(jì)方法(例如:基于共現(xiàn)矩陣、SVD)b.另一種是基于語(yǔ)言模型的任務(wù)2應(yīng)用詞向量進(jìn)行詞匯計(jì)算步驟1:解壓資源文件步驟2:加載詞向量模型步驟3:輸出兩個(gè)詞的相似度步驟4:輸出詞匯的同類詞步驟5:輸出異類詞步驟6:詞匯加減法下面我們使用中文文本數(shù)據(jù)訓(xùn)練詞向量模型,然后使用訓(xùn)練出的詞向量找同類詞、相似度、異類詞。任務(wù)2應(yīng)用詞向量進(jìn)行詞匯計(jì)算壓縮文件'data-sets/wordvec.zip'中包含了預(yù)訓(xùn)練好的詞向量模型。步驟一:解壓資源文件任務(wù)2應(yīng)用詞向量進(jìn)行詞匯計(jì)算使用load函數(shù)加載模型。步驟二:加載詞向量模型任務(wù)2應(yīng)用詞向量進(jìn)行詞匯計(jì)算調(diào)用similarity函數(shù),函數(shù)原型即similarity(self,w1,w2),該函數(shù)計(jì)算給定的兩個(gè)詞w1,w2對(duì)應(yīng)的詞向量的余弦相似度。步驟三:輸出兩個(gè)詞的相似度任務(wù)2應(yīng)用詞向量進(jìn)行詞匯計(jì)算調(diào)用similar_by_word函數(shù),該函數(shù)計(jì)算給定的詞匯與模型中其他所有詞對(duì)應(yīng)的詞向量之間的相似度,并按從大到小排序,默認(rèn)輸出前10個(gè)詞,也可以配置函數(shù)中的參數(shù)topn,輸出相似度最高的topn個(gè)詞。步驟四:輸出詞匯的同類詞任務(wù)2應(yīng)用詞向量進(jìn)行詞匯計(jì)算調(diào)用doesnt_match函數(shù),函數(shù)原型即doesnt_match(self,words),找到給定詞列表words中的異常詞。
該函數(shù)核心調(diào)用了另一個(gè)方法即rank_by_centrality,主要功能是計(jì)算給定所有詞對(duì)應(yīng)的詞向量的均值向量(中心),然后分別計(jì)算給定每個(gè)詞與該中心的余弦相似度,并按從大到小排序。
doesnt_match函數(shù)直接輸出rank_by_centrality函數(shù)的返回結(jié)果中與中心相似度最小的那個(gè)詞(余弦距離最大即最遠(yuǎn))。步驟五:輸出異類詞任務(wù)2應(yīng)用詞向量進(jìn)行詞匯計(jì)算調(diào)用most_similar函數(shù),并配置參數(shù)positive和negative時(shí),能夠?qū)崿F(xiàn)詞匯的加減法。該函數(shù)實(shí)現(xiàn)的是將positive對(duì)應(yīng)的詞向量相加,與negative對(duì)應(yīng)的詞向量相減,然后基于向量加減法得到的向量,找到模型中與之相似度最大的詞,默認(rèn)輸出10個(gè)最相似的詞,也可以在函數(shù)中設(shè)置參數(shù)topn的值,指定輸出最相似的前幾個(gè)詞。步驟六:詞匯加減法于是就出現(xiàn)了詞向量的一個(gè)有意思的特性。比如:國(guó)王+女人-男人=王后。趣味文學(xué)智能對(duì)對(duì)聯(lián)情景導(dǎo)入小派最近迷戀上了對(duì)對(duì)聯(lián),但是無奈沒有人想和他battle一下,于是他又去求助了計(jì)算機(jī),他想設(shè)計(jì)一個(gè)能夠PK對(duì)對(duì)聯(lián)的系統(tǒng):小派出上聯(lián),計(jì)算機(jī)能夠?qū)ο侣?lián)。下面我們開始構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練一個(gè)自動(dòng)對(duì)對(duì)聯(lián)的模型。實(shí)訓(xùn)目標(biāo)簡(jiǎn)單處理文本對(duì)聯(lián)數(shù)據(jù)分割數(shù)據(jù)集調(diào)用已訓(xùn)練模型,自動(dòng)對(duì)對(duì)聯(lián)任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型點(diǎn)擊左側(cè)黃色文件夾圖標(biāo),進(jìn)入“data-sets”文件夾,壓縮包“data_couplet.zip”中包含了我們收集的對(duì)聯(lián)數(shù)據(jù),上聯(lián)和下聯(lián)分別以文本形式儲(chǔ)存與、于兩個(gè)文本文檔中,其中每一行文字代表一條對(duì)聯(lián)的上、下聯(lián)。共計(jì)70余萬條。??下面我們用unzip命令將壓縮包解壓到當(dāng)前目錄下。解壓完成后,再次點(diǎn)擊文件夾圖標(biāo)即可看到兩個(gè)文本文件。步驟一:解壓數(shù)據(jù)集任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型為了后續(xù)的模型訓(xùn)練,我們需要對(duì)原始文本進(jìn)行預(yù)處理。下面我們打開兩個(gè)文件逐行將文字以空格隔開,便于后續(xù)模型的學(xué)習(xí)和預(yù)測(cè)。樣本示例處理前:欲捧行云空有憾處理后:欲捧行云空有憾步驟二:文本按字用空格隔開任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型上一步處理的上聯(lián)和下聯(lián)數(shù)據(jù)分別以列表list形式保存于x_split、y_split中。??通過len方法查看數(shù)據(jù)量的大小,同時(shí)確認(rèn)處理后上聯(lián)數(shù)據(jù)和下聯(lián)數(shù)據(jù)總量是保持一致的。步驟三:查看數(shù)據(jù)量任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型分別查看上聯(lián)和下聯(lián)的前10條文本。步驟四:查看部分?jǐn)?shù)據(jù)任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型?在后續(xù)模型訓(xùn)練過程中,我們使用數(shù)據(jù)集的一部分作為訓(xùn)練集,一部分作為測(cè)試集。這里調(diào)用sklearn中的train_test_split來分隔數(shù)據(jù)集,其中考慮到數(shù)據(jù)總量達(dá)到70多萬,參數(shù)test_size設(shè)置為0.01,這樣測(cè)試集的大小為7000余條。步驟五:分割數(shù)據(jù)集任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型?將上一步得到的訓(xùn)練集的上聯(lián)x_train、下聯(lián)y_train,測(cè)試集的上聯(lián)x_test、下聯(lián)y_test分別保存起來。其中將訓(xùn)練集保存到train文件夾下,測(cè)試集保存到test文件夾下。步驟六:保存訓(xùn)練集和測(cè)試集任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型導(dǎo)入我們封裝好的train_couplet包。步驟七:導(dǎo)入代碼包任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型步驟八:讀取訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型步驟九:講訓(xùn)練數(shù)據(jù)測(cè)試數(shù)據(jù)分組存放訓(xùn)練數(shù)據(jù)以字典形式存儲(chǔ),字典中的key代表對(duì)聯(lián)的長(zhǎng)度(包含的字?jǐn)?shù)),字典中的value整體是個(gè)列表,列表中包含兩個(gè)元素,一個(gè)是輸入上聯(lián),另一個(gè)是輸出下聯(lián),且上聯(lián)和下聯(lián)分別用id(某個(gè)字在所以數(shù)據(jù)集構(gòu)成的字典中的序號(hào))表示。任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型步驟十:構(gòu)建模型初始化模型結(jié)構(gòu)。任務(wù)三構(gòu)建對(duì)聯(lián)數(shù)據(jù)集并訓(xùn)練模型步驟十一:訓(xùn)練模型調(diào)用train_model函數(shù)開始訓(xùn)練,其中最后一個(gè)參數(shù)表示epochs(訓(xùn)練輪數(shù),可以自行修改)。訓(xùn)練完成后,最優(yōu)模型將會(huì)保存在當(dāng)前目錄下。任務(wù)四測(cè)試模型輸出上聯(lián)自動(dòng)對(duì)下聯(lián)步驟1:解壓數(shù)據(jù)集步驟2:導(dǎo)入代碼包步驟3:讀取訓(xùn)練數(shù)據(jù)和測(cè)試數(shù)據(jù)步驟4:構(gòu)建模型步驟5:加載模型步驟6:任意輸入上聯(lián)測(cè)試任務(wù)四測(cè)試模型輸出上聯(lián)自動(dòng)對(duì)下聯(lián)步驟一:解壓數(shù)據(jù)集?點(diǎn)擊左側(cè)黃色文件夾圖標(biāo),進(jìn)入“data-sets”文件夾,壓縮包“couplet_test.zip”中包含了經(jīng)過預(yù)處理的訓(xùn)練集和測(cè)試集、已訓(xùn)好的模型和封裝后的代碼。
??我們使用unzip命令將壓縮包解壓到當(dāng)前目錄下。解壓完成后,可以看到文件夾train(訓(xùn)練集)、test(測(cè)試集)、model(模型文件)以及python腳本train_couplet.py(可調(diào)用其中的方法去完成對(duì)對(duì)聯(lián)模型的訓(xùn)練)。任務(wù)四測(cè)試模型輸出上聯(lián)自
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版九年級(jí)英語(yǔ)上冊(cè) Unit2 課時(shí)1 Section A 1a-2d分層作業(yè)
- 主播助理轉(zhuǎn)正考核題目與答案
- 普洱發(fā)展領(lǐng)域試題及詳細(xì)答案
- 考查銀聯(lián)卡功能的試題及完整答案
- 家庭護(hù)理程序題目及詳細(xì)答案呈現(xiàn)
- 年度工傷保險(xiǎn)工作總結(jié)
- 2025屆云南省昆明市富民縣數(shù)學(xué)四下期末質(zhì)量檢測(cè)試題(含解析)
- 2025屆云南省大理白族自治州賓川縣數(shù)學(xué)三年級(jí)第二學(xué)期期末質(zhì)量檢測(cè)模擬試題含解析
- 2025屆烏拉特后旗數(shù)學(xué)三年級(jí)第二學(xué)期期末復(fù)習(xí)檢測(cè)試題(含答案解析)
- 航空加法試題及答案
- 軍工涉密業(yè)務(wù)管理辦法
- DB34∕T 4541-2023 廢棄露采坑一般工業(yè)固廢處置與生態(tài)修復(fù)技術(shù)規(guī)范
- 公路工程2018預(yù)算定額釋義手冊(cè)
- DB37-T2119-2025轉(zhuǎn)爐煤氣干法電除塵系統(tǒng)安全技術(shù)要求
- 環(huán)境影響評(píng)價(jià)(第2版)第8章 輸變電工程電磁環(huán)境影響評(píng)價(jià)
- 2024年中國(guó)電信集團(tuán)有限公司招聘考試真題
- 《中醫(yī)體重管理臨床指南》
- 2024-2030年中國(guó)高強(qiáng)度聚焦超聲設(shè)備行業(yè)市場(chǎng)發(fā)展趨勢(shì)與前景展望戰(zhàn)略分析報(bào)告
- 《地質(zhì)災(zāi)害風(fēng)險(xiǎn)調(diào)查評(píng)價(jià)編圖規(guī)范》
- 2024安徽省信用融資擔(dān)保集團(tuán)有限公司招聘17人筆試備考題庫(kù)及答案解析
- 鋼結(jié)構(gòu)安裝施工組織設(shè)計(jì)方案
評(píng)論
0/150
提交評(píng)論