日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

周杰伦歌词预测 #博学谷IT学习技术支持#

發(fā)布時間:2024/3/12 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 周杰伦歌词预测 #博学谷IT学习技术支持# 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

一、目標

二、思路

1 構建詞料庫

? ? 1.1數(shù)據(jù)清洗

? ? 1.2 構建分詞到索引的映射表

2 構建數(shù)據(jù)集對象

2.1 創(chuàng)建一個歌詞類

2.2? 構建數(shù)據(jù)集

3 構建網(wǎng)絡模型

4 構建訓練函數(shù)

4.1 創(chuàng)建訓練數(shù)據(jù)集?

4.2 初始化網(wǎng)絡模型

4.3 構建損失函數(shù)

4.4 選擇優(yōu)化方法

4.4 確定訓練輪數(shù)

4.5 保存訓練模型

5 構建預測函數(shù)

5.1? 把輸入的開始詞,先轉化為索引向量


?

一、目標

相當于我們在音樂播放器里面搜索。歌詞里面的幾個字。就可以顯示出歌詞后面的一些字。比如,

輸入? ? ? “誰在用琵琶”,5,

輸出? ? ? ?誰在用琵琶彈奏一曲東

輸入一串文本,預測下一個文本,屬于分類問題。

有一個周杰倫歌詞的文檔。希望通過輸入歌詞的前幾個字和一個數(shù)字,能夠預測出輸入歌詞的前幾個字和之后的幾個字。

二、思路

1 構建詞料庫

? ? ?因為歌詞是一個文本文檔。我們需要把文本文檔里面的文字用數(shù)字表示,便于我們后面處理計算。比如,氣球,用[0,1]表示。類似這樣的,就是詞料庫。

? ? 1.1數(shù)據(jù)清洗

? ? ?首先我們需要把歌詞的文本文檔進行處理。去掉多余的文字,空格,換行等等。只留下 漢字,字母,數(shù)字,感嘆號,問號,逗號。

? ? 1.2 構建分詞到索引的映射表

? ? 把文檔里面的每一行讀出來。再把每一行里面的單詞利用jieba庫,分詞,比如,把 我喜歡你,分成 ['我','喜歡','你']。?

? ? ?把分詞出來的所有的分詞,去重,放在一個列表中。就得到了從索引到分詞的映射表。再根據(jù)這個映射表得到從分詞到索引的字典。

? ? ?根據(jù)這個字典,把文檔中的每句中文,轉換成用索引表示的向量。這就是詞料庫。

2 構建數(shù)據(jù)集對象

2.1 創(chuàng)建一個歌詞類

? ? 有init ,有l(wèi)en魔法方法。

2.2? 構建數(shù)據(jù)集

? ? ?實例化歌詞類,得到數(shù)據(jù)集,用數(shù)據(jù)加載器來加載數(shù)據(jù)集。

3 構建網(wǎng)絡模型

? ?有三層,

? ? 第一層是詞嵌入層,用于將詞料庫,轉化為詞向量。比如我們把每一個分詞,用一個128維的向量來表示。假設輸入的句子長度為5,那么經(jīng)過嵌入層之后的向量,維度就是 1,5,128? 。這里面1是batch size,5是句子的長度,128是每個分詞的向量維數(shù)。

? ? 第二層是循環(huán)網(wǎng)絡, 用來提取句子的語義特征。

輸入的維度是128維,輸出的維度是128維。

循環(huán)網(wǎng)絡層的輸入希望batch_size在第一位。注意要有隱藏層。輸出output是每一個時間步的輸出,hidden只表示最后一個時間步的隱藏狀態(tài)。將output送入全連接層,得到輸出。

? ? ?第三層是全連接層,用來輸出對詞典中每個詞的預測概率,我們最后選取預測概率最大的詞,作為我們的輸出。輸入維度是128維。預測結果維度是? ?5,1,5682。? ?這里面1是batch size,5是句子的長度,5682是分詞的總數(shù)目,? ? 5682是,預測,每一個分詞的概率大小,最后我們選擇預測概率大的詞,輸出。

4 構建訓練函數(shù)

把訓練數(shù)據(jù)集,放進網(wǎng)絡里面訓練。因為文本生成本質上是輸入一串文本,預測下一個文本,屬于分類問題,所以我們使用多分類交叉商損失函數(shù)。優(yōu)化方法,我們使用SGD或者Adam。

4.1 創(chuàng)建訓練數(shù)據(jù)集?

使用剛剛的數(shù)據(jù)集類,輸入資料庫和32。這里的32代表32個句子長度。

4.2 初始化網(wǎng)絡模型

使用剛剛構建的網(wǎng)絡模型來初始化網(wǎng)絡模型

4.3 構建損失函數(shù)

4.4 選擇優(yōu)化方法

導入包,選擇優(yōu)化方法,指定學習率

4.4 確定訓練輪數(shù)

? ? ? ?對每輪訓練,初始化數(shù)據(jù)加載器,batch size等于1。初始化迭代次數(shù),總的訓練損失等于0.0。

? ? ?數(shù)據(jù)集進入模型訓練后的輸出維度是? 32,1,5682? 。訓練數(shù)據(jù)集的標簽維度是 1,32? 。

4.5 保存訓練模型

5 構建預測函數(shù)

加載預測數(shù)據(jù)集,從磁盤加載已經(jīng)訓練好的模型,進行預測。我們輸入一個指定的詞,送入網(wǎng)絡,預測出下一個詞,再將預測出來的詞再送入網(wǎng)絡,再預測下一個詞,以此類推,直到預測出我們指定場長度的內容。

5.1? 把輸入的開始詞,先轉化為索引向量

把輸入的開始詞,利用詞料庫,轉化為索引向量。把所以向量送入模型中去預測下一個概率最大的分詞的索引,放在下一個分詞的索引列表中,再循環(huán),直到完成指定數(shù)目。注意,這里得到的是分詞的索引列表,所以需要用所以到分詞的列表,轉化為分詞的分詞列表。這樣就得出了預測的分詞。

?

?

? ? ?

?

?

?

總結

以上是生活随笔為你收集整理的周杰伦歌词预测 #博学谷IT学习技术支持#的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。