Chinese-ChatBot/中文聊天機器人
- 作者已經全面轉到
GNN圖神經網路方向C++開發,不再跟進NLP方面,專案程式碼停止維護。遙想專案完成時,網路資源甚少,作者一時興起初次接觸NLP與Deep Learning,克服重重困難,終於寫出這篇Toy Model。因此,作者深知小白不易,所以即使項目不再維護,但issue或郵件([email protected])一定會及時答复,以幫助Deep Learning新人。 (Tensorflow我用的版本太老了,新的版本直接運行肯定各種報錯,如果你遇到困難也別可以費勁去裝老版的環境了,建議用Pytorch參照我的處理邏輯重構一遍,我懶得寫了)
- GNN方面:
- 改編整理了一套基準比較模型:GNNs-Baseline ,以方便快速驗證idea。
- 本人的論文ACMMM 2023 (CCF-A) 開源程式碼在這裡LSTGM。
- 本人的論文ICDM 2023 (CCF-B) 開源程式碼還在整理中。 。 。 GRN
環境配置
程式 | 版本 |
---|
Python直譯 | 3.68 |
tensorflow | 1.13.1 |
Keras | 2.2.4 |
windows10 | |
jupyter | |
主要參考資料
- 論文《NEURAL MACHINE TRANSLATION BY JOINTLY LEARNING TO ALIGN AND TRANSLATE(點擊標題下載)》
- Attention結構圖
關鍵點
- LSTM
- seq2seq
- attention 實驗顯示加入attention機制後訓練速度快,收斂快,效果較好。
語料及訓練環境
青雲語料庫10萬組對話,在google colaboratory訓練。
運行
方式一:完整過程
- 資料預處理
get_data
- 模型訓練
chatbot_train
(此為掛載至google colab版本,本地跑對路徑等需略加修改)
- 模型預測
chatbot_inference_Attention
方式二:載入現有模型
- 運行
chatbot_inference_Attention
- 載入
models/W--184-0.5949-.h5
介面(Tkinter)
Attention權重視覺化
其他
- 訓練檔案chat_bot中,最後三塊程式碼前兩個是掛載谷歌雲盤用的,最後一個是獲取那些loss方便畫圖,不知道為什麼回調函數裡的tensorbord不好使,故出此下策;
- 預測文件裡倒數第二塊程式碼只有文字輸入沒介面,最後一塊程式碼是介面,依照需求兩塊跑其一即刻;
- 程式碼中有很多中間輸出,希望對你理解程式碼提供了些許幫助;
- models裡面有一個我訓練好的模型,正常運作應該是沒有問題的,你也可以自己訓練
- 作者能力有限,並未找到量化對話效果的指標,因此loss只能大致反映訓練進度。