Python自然語言處理 課件10-4-Seq2Seq模型與實戰(zhàn)_第1頁
Python自然語言處理 課件10-4-Seq2Seq模型與實戰(zhàn)_第2頁
Python自然語言處理 課件10-4-Seq2Seq模型與實戰(zhàn)_第3頁
Python自然語言處理 課件10-4-Seq2Seq模型與實戰(zhàn)_第4頁
Python自然語言處理 課件10-4-Seq2Seq模型與實戰(zhàn)_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

深度學(xué)習(xí)與自然語言處理Python自然語言處理第十章課前回顧簡單RNNLSTM網(wǎng)絡(luò)Attention機制Seq2Seq模型與實戰(zhàn)04Seq2Seq模型實戰(zhàn)Seq2Seq問答機器人本章小結(jié)Seq2Seq模型

自然語言生成(NatureLanguageGeneration,簡稱NLG)自然語言理解(NatureLanguageUnderstanding,簡稱NLU)Encoder-Decoder基本結(jié)構(gòu):Seq2Seq模型

ABC:輸入序列WXYZ:輸出序列<EOS>:句子結(jié)束符第一個RNN接受輸入序列,輸出輸入向量的語義表示向量第二個RNN接受第一個RNN生成的輸入序列的語義向量Seq2Seq模型

Seq2Seq模型

Seq2Seq模型與實戰(zhàn)04Seq2Seq模型實戰(zhàn)Seq2Seq問答機器人本章小結(jié)實戰(zhàn)Seq2Seq問答機器人

問答系統(tǒng):本質(zhì)上是一個信息檢索(IR)系統(tǒng),從文本中獲取更多的信息,返回更加精準(zhǔn)的答案,模仿人的語言習(xí)慣,通過模式匹配的方式來尋找答案問答系統(tǒng)流程:(1)問題解析(2)信息檢索(3)答案抽取實戰(zhàn)Seq2Seq問答機器人

聊天機器人:存放大量句型、模版知道的問題,給出人性化答案不知道的問題,回答不知道或轉(zhuǎn)移話題實戰(zhàn)Seq2Seq問答機器人

聊天機器人解決的問題:1、怎么讓機器人能聽你的話并想出應(yīng)該回復(fù)什么2、怎么樣進行開放式的話題,讓聊天一直持續(xù)下去3、怎么樣貼合用戶愛好,聊相關(guān)話題4、面對多樣的用戶是怎么讓各種用戶都滿意的實戰(zhàn)Seq2Seq問答機器人

聊天機器人實現(xiàn)過程:1用戶輸入數(shù)據(jù)2分析用戶意圖3抓取關(guān)鍵參數(shù)4匹配最佳回答5輸出回答實戰(zhàn)Seq2Seq問答機器人

1、安裝Python3.6:安裝gensim3.8.3、jieba0.42.1、TensorFlow1.5.0庫2、載入主函數(shù)相關(guān)庫importosimportsysimportmathimporttimeimportnumpyasnpimporttensorflowastfimportdata_utilsimports2s_model實戰(zhàn)Seq2Seq問答機器人3、設(shè)置參數(shù)tf.app.flags.DEFINE_float('learning_rate',0.0003,'學(xué)習(xí)率')tf.app.flags.DEFINE_float('max_gradient_norm',5.0,'梯度最大閾值')tf.app.flags.DEFINE_float('dropout',1.0,'每層輸出DROPOUT的大小')tf.app.flags.DEFINE_integer('batch_size',64,'批量梯度下降的批量大小')tf.app.flags.DEFINE_integer('size',512,'LSTM每層神經(jīng)元數(shù)量')tf.app.flags.DEFINE_integer('num_layers',2,'LSTM的層數(shù)')tf.app.flags.DEFINE_integer('num_epoch',5,'訓(xùn)練幾輪')tf.app.flags.DEFINE_integer('num_samples',512,'分批softmax的樣本量')tf.app.flags.DEFINE_integer('num_per_epoch',1000,'每輪訓(xùn)練多少隨機樣本')tf.app.flags.DEFINE_string('buckets_dir','./bucket_dbs','sqlite3數(shù)據(jù)庫所在文件夾')tf.app.flags.DEFINE_string('model_dir','./model','模型保存的目錄')tf.app.flags.DEFINE_string('model_name','model4','模型保存的名稱')tf.app.flags.DEFINE_boolean('use_fp16',False,'是否使用16位浮點數(shù)(默認32位)')tf.app.flags.DEFINE_integer('bleu',-1,'是否測試bleu')tf.app.flags.DEFINE_boolean('test',False,'是否在測試')FLAGS=tf.app.flags.FLAGSbuckets=data_utils.buckets實戰(zhàn)Seq2Seq問答機器人4、定義建立模型函數(shù)defcreate_model(session,forward_only):#建立模型

dtype=tf.float16ifFLAGS.use_fp16elsetf.float32model=s2s_model.S2SModel(data_utils.dim,data_utils.dim,buckets,FLAGS.size,FLAGS.dropout,FLAGS.num_layers,FLAGS.max_gradient_norm,FLAGS.batch_size,FLAGS.learning_rate,FLAGS.num_samples,forward_only,dtype)returnmodel實戰(zhàn)Seq2Seq問答機器人定義seq2seq_modeclassS2SModel(object):def__init__(self,source_vocab_size,target_vocab_size,buckets,size,dropout,num_layers,max_gradient_norm,batch_size,learning_rate,num_samples,forward_only=False,dtype=tf.float32):…實戰(zhàn)Seq2Seq問答機器人數(shù)據(jù)轉(zhuǎn)換函數(shù)classBucketData(object):defread_bucket_dbs(buckets_dir):defsentence_indice(sentence):defindice_sentence(indice):defvector_sentence(vector):defgenerate_bucket_dbs(input_dir,output_dir,buckets,tolerate_unk=1):…實戰(zhàn)Seq2Seq問答機器人5、定義訓(xùn)練模型函數(shù)deftrain():#訓(xùn)練模型

#準(zhǔn)備數(shù)據(jù)

print('準(zhǔn)備數(shù)據(jù)')bucket_dbs=data_utils.read_bucket_dbs(FLAGS.buckets_dir)bucket_sizes=[]foriinrange(len(buckets)):bucket_size=bucket_dbs[i].sizebucket_sizes.append(bucket_size)print('bucket{}中有數(shù)據(jù){}條'.format(i,bucket_size))total_size=sum(bucket_sizes)print('共有數(shù)據(jù){}條'.format(total_size))#開始建模與訓(xùn)練…實戰(zhàn)Seq2Seq問答機器人6、定義模型測試函數(shù)deftest():classTestBucket(object):def__init__(self,sentence):self.sentence=sentencedefrandom(self):returnsentence,''

withtf.Session()assess:#構(gòu)建模型

model=create_model(sess,True)model.batch_size=1

#初始化變量

sess.run(tf.global_variables_initializer())…實戰(zhàn)Seq2Seq問答機器人7、定義main函數(shù)defmain(_):ifFLAGS.test:#測試模型

test()else:#訓(xùn)練模型

train()

if__name__=='__main__':np.random.seed(0)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論