當前位置:編程學習大全網 - 編程語言 - 詞袋模型編程

詞袋模型編程

朋友圈很多人都想學python。很重要的壹個原因是非常適合入門。對於人工智能算法的開發,python有著其他編程語言不具備的獨特優勢,代碼量小,開發者只需要專心於算法研究即可。

介紹壹個用python開發的小軟件,可以自動和美女聊天。以下全是幹貨,是我業余時間寫的。經過不斷優化,現在分享給大家。那我們趕緊開始吧!

準備:

編程工具IDE:pycharm

Python版本:3.6.0

首先,創建壹個名為ai_chat.py的新py文件

PS:下面五個步驟的代碼可以直接復制到單個py文件中,直接運行。為了方便讀者寫代碼,我把所有代碼都貼上來了,但是排版有問題,所以把代碼在pycharm裏排版截圖。

第壹步:介紹主要產品包

簡單介紹壹下上面幾個包的功能:pickle包是用來序列化保存數據和反序列化讀取文件的,人類無法讀取,但是電腦讀取的速度超級快。(就是用記事本打開都是亂碼)。Json包是壹種文本序列化,是人可讀的,方便妳修改(記事本打開,裏面的內容妳都能看到,都知道)。Gensim包是自然語言處理中的python包之壹,簡單易用,是入門NLP算法必須使用的python包。解霸包用於分詞,對算法咖壹般有效,但速度很快,適合入門。

這些包不是關鍵。學習的時候可以先跳過。了解了整個程序流程後,就可以壹個壹個的看文檔了。

步驟2:靜態配置

這裏,path是指對話語料庫(訓練數據)存儲的位置,model_path是模型存儲的路徑。

下面是個人編程的習慣。我習慣把壹些配置,比如文件路徑,模型存儲路徑,模型參數放在壹個類裏。當然,在開發實際項目時,它存儲在壹個配置文件中,不會直接寫在代碼中。這裏為了演示方便,寫在壹起,也方便操作。

第三步:編寫壹個類,實現數據引導、模型訓練、對話預測的壹體化。

第壹次運行時,它會從靜態配置中讀取訓練數據的路徑,讀取數據,進行訓練,並將訓練好的模型存儲到指定的模型路徑。後續操作是直接導入模型,不需要再次訓練。

對於模型類的,就壹個壹個介紹吧。

Initialize()函數和__init__()函數是對象的初始化和實例化,包括基本參數的賦值、模型導入、模型訓練、模型保存,最後返回壹個對象給用戶。

__train_model()函數,將問題分段,用gesim實現詞袋模型,統計每個特征的tf-idf,建立稀疏矩陣,然後建立索引。

__save_model()函數和__load_model()函數成對出現,很多項目都有這兩個函數用於保存和導入模型。不同的是,這個項目使用的是文件存儲的方式,實際上使用的是在線數據庫。

get_answer()函數利用訓練好的模型對問題進行分析,最後將預測的答案反饋給用戶。

第四步:編寫三個工具類型的函數來讀寫文件。

其中,獲取的對話素材可以作為機器的訓練數據,用於獨立修改對話內容。這裏我只是給了幾個簡單的對話語料庫。線上項目其實是需要大量的語料庫來訓練的,這樣對話內容才比較飽滿。

這三個工具功能都比較簡單。在get_data()函數中,數據是自己編譯的。可以根據自己的習慣添加自己的對話數據,這樣最終的訓練模型和對話模式會更貼近自己的說話風格。

第五步:調用模型,進行對話預測。

主函數main()是妳整個程序的起點,控制著所有的步驟。

運行結果:

程序後臺運行結果:

如果有任何疑問,想獲取源代碼(其實代碼都在上面),可以在後臺私信我,回復:python智能對話。我會把源代碼發給妳。最後,感謝您的閱讀,祝您工作生活愉快!

  • 上一篇:在matlab中如何輸入壹個任意的多項式
  • 下一篇:2016款奧迪q5跑1000公裏燒機油顯示剩壹半了
  • copyright 2024編程學習大全網