deep QA 基於生成的chatbot系統



  • 基於生成的chatbot系統,使用的是經典Seq2Seq的結構:
       
  •   數據集:
          數據集默認存儲在項目中的data文件夾中,
                
 
          clone項目的的時候,Cornell Movie Dialog 是一起下載
          其他的數據集: OpenSubtitlesSupreme Court Conversation Data, Ubuntu Dialogue Corpus 需要額外下載, 使用時通過參數-- corpus  **指定
          自定義的數據集,可根據既定的模式使用  https://github.com/Conchylicultor/DeepQA/tree/master/data/lightweight ,使用時通過參數 --corpus lightweight --datasetTag <name>指定
          
  •   注:若需要使用中文數據集,只需修改testdata.py中的斷詞的地方,引入結巴即可
         將 tokens = nltk.word_tokenize(sentencesToken[i]) 換成 tokens = list (jieba.cut(sentencesToken[i]))
       
 
  • 為了加速訓練,可使用提前訓練好的word wmbeddings
  • 模型訓練
        直接運行main函數
        讀取數據: textdata.py將文本按照出現的次序轉換成數字編碼,同時生成字典
       
        處理好的數據存儲在self.trainingSample中,
         字典:
       
         
        構建模型:
        主要的邏輯實現在model.py中,通過TensorFlow自帶 embedding_rnn_seq2seq函數實現
        
        構建完成后開始訓練
 
  • 測試模型
       通過參數modelTag指定model,test指定交互方式
     
      decoder ouptut 輸出 單句最大詞數*1*數據集單詞數  的3維向量,每個數值表示所對應單詞的概率,取最大的作為答案,即可得到若干個單詞作為答案   
        
 
 

 
 

 

 

 



































 






免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM