Ⅰ 我用了100行python代碼,實現了與女神尬聊微信(附代碼)
朋友圈很多人都想學python,有一個很重要的原因是它非常適合入門。對於 人工智慧演算法 的開發,python有其他編程語言所沒有的獨特優勢, 代碼量少 ,開發者只需把精力集中在演算法研究上面。
本文介紹一個用python開發的,自動與美女尬聊的小軟體。以下都是滿滿的干貨,是我工作之餘時寫的,經過不斷優化,現在分享給大家。那現在就讓我們抓緊時間開始吧!
准備:
編程工具IDE:pycharm
python版本: 3.6.0
首先新建一個py文件,命名為:ai_chat.py
PS: 以下五步的代碼直接復制到單個py文件裡面就可以直接運行。為了讓讀者方便寫代碼,我把代碼都貼出來了,但是排版存在問題,我又把在pycharm的代碼排版給截圖出來。
第一步: 引入關鍵包
簡單介紹一下上面幾個包的作用: pickle 包 是用來對數據序列化存文件、反序列化讀取文件,是人類不可讀的,但是計算機去讀取時速度超快。(就是用記事本打開是亂碼)。 而 json包 是一種文本序列化,是人類可讀的,方便你對其進行修改(記事本打開,可以看到裡面所有內容,而且都認識。) gensim 包 是自然語言處理的其中一個python包,簡單容易使用,是入門NLP演算法必用的一個python包。 jieba包 是用來分詞,對於演算法大咖來說效果一般般,但是它的速度非常快,適合入門使用。
以上這些包,不是關鍵,學習的時候,可以先跳過。等理解整個程序流程後,可以一個一個包有針對性地去看文檔。
第二步:靜態配置
這里path指的是對話語料(訓練數據)存放的位置,model_path是模型存儲的路徑。
這里是個人編程的習慣,我習慣把一些配置,例如:文件路徑、模型存放路徑、模型參數統一放在一個類中。當然,實際項目開發的時候,是用config 文件存放,不會直接寫在代碼里,這里為了演示方便,就寫在一起,也方便運行。
第三步: 編寫一個類,實現導數據、模型訓練、對話預測一體化
首次運行的時候,會從靜態配置中讀取訓練數據的路徑,讀取數據,進行訓練,並把訓練好的模型存儲到指定的模型路徑。後續運行,是直接導入模型,就不用再次訓練了。
對於model類,我們一個一個來介紹。
initialize() 函數和 __init__() 函數 是對象初始化和實例化,其中包括基本參數的賦值、模型的導入、模型的訓練、模型的保存、最後返回用戶一個對象。
__train_model() 函數,對問題進行分詞,使用 gesim 實現詞袋模型,統計每個特徵的 tf-idf , 建立稀疏矩陣,進而建立索引。
__save_model() 函數 和 __load_model() 函數 是成對出現的,很多項目都會有這兩個函數,用於保存模型和導入模型。不同的是,本項目用的是文件存儲的方式,實際上線用的是資料庫
get_answer() 函數使用訓練好的模型,對問題進行分析,最終把預測的回答內容反饋給用戶。
第四步:寫三個工具類型的函數,作為讀寫文件。
其中,獲取對話材料,可以自主修改對話內容,作為機器的訓練的數據。我這里只是給了幾個簡單的對話語料,實際上線的項目,需要大量的語料來訓練,這樣對話內容才飽滿。
這三個工具函數,相對比較簡單一些。其中 get_data() 函數,裡面的數據是我自己編的,大家可以根據自己的習慣,添加自己的對話數據,這樣最終訓練的模型,對話方式會更貼近自己的說話方式。
第五步: 調用模型,進行對話預測
主函數main(), 就是你整個程序運行的起點,它控制著所有步驟。
運行結果:
程序後台運行結果:
如果有疑問想獲取源碼( 其實代碼都在上面 ),可以後台私信我,回復:python智能對話。 我把源碼發你。最後,感謝大家的閱讀,祝大家工作生活愉快!
Ⅱ python愛心代碼怎麼發給別人
使用微信發送。python愛心代碼可以直接使用微信發送,非常方便。微信(WeChat)是騰訊公司於2011年1月21日推出的一個為智能終端提供即時通訊服務的免費應用程序,由張小龍所帶領的騰訊廣州研發中心產品團隊打造。
Ⅲ 表白代碼大全可復制免費
表白代碼大全可復制免費
表白代碼大全可復制免費,用代碼表白是一件非常浪漫的事情,只需要短短的一行代碼,就可以製作生活中的驚喜和小浪漫,但是設置代碼是需要技巧的,以下分享表白代碼大全可復制免費。
1.發送xoxO(會出現滿屏親親)
2.發送mi manchi(會出現滿屏小星星)
3.發送ohh(翻譯:留在我身邊)
4.發送ch will mit dir S wim(翻譯:我想和你在一起)
5.發送Voce e meu bebe(翻譯:你是我的寶貝)
6.發送 RUYDUAautrinuU(翻譯我只喜歡你)
7.發送 love at first sight(翻譯:—見鍾情)
8.發送We will be happy(我們會幸福)
9.發送missu(會出現星星雨)
10.發送u621u7231u460(翻譯:愛你)
11.發送u5728u4e0Ou8d7Nu5427(翻譯在一起)
12.發送Milji pouze jednu osobu, ta osoba jste vy.我只愛一個人,那個人就是你)
13.發送 yax you(翻譯我跟你說)發送yyyax you翻譯我喜歡你)發送 yox you!(我愛死你了)
14.n 55 iw!(倒過來是i miss you我想你。)
15.我想要兩顆西柚("1 wanttoseeyou"我想要見你)
16.962464(用九宮格輸入試試)
17.Mg+Znso4==MgSo4+zn(你的鎂奪走了我的鋅)
18.Te echo de menos(微信翻譯:我想你)
19.雙木非林田下有心(相思)
20.n.nggui(倒過來看就是ineedyoy我需要你)
程序員的表白代碼
第一條語言:Java代碼翻譯:直到死之前,每天愛你多一點代碼:while(lifeend){love++;}
第二條語言:C語言代碼翻譯:.代碼:#incldestdio.hintmain(){printf(HelloWorldn);retrn0;}//.
第三條語言:python代碼翻譯:山無陵,江水為竭,冬雷震震,夏雨雪,天地合,乃敢與君絕!代碼:if(mountain.arris==None):if(river.water==None):if(winter.thunder==True):if(summer.snow==
True):if(sky.height==ground.height):i.withyou=Falseelse:i.withyou=True.
第四條語言:Erlang代碼代碼翻譯:深圳相遇,至死不渝代碼:-mole(you_and_me).-export([start/1]).-record(person,{name,address,status}).start(Name)-one_world(Name).one_world(Name)keep_to_love_you(Person).say_goodbye(Person)-io:format(~p:seeyounextworld!~n,[Person#person.name]).see_you_next_world(Name)-one_world(Name).
第五條語言:Java語言代碼翻譯:愛你到天荒地老代碼:while(!world.destroy){System.out.println(iloveyou);}
第一條
語言:Java
代碼翻譯:
直到死之前,每天愛你多一點
代碼:
while (life < end) {
love++;
}
// I can not say Hello to the World without u.
第二條
語言:python
代碼翻譯:
山無陵, 江水為竭, 冬雷震震, 夏雨雪, 天地合, 乃敢與君絕!
代碼:
if(mountain.arris==None):
if(river.water==None):
if(winter.thunder==True):
if(summer.snow==True):
if(sky.height==ground.height):
i.withyou=False
else:
i.withyou=True
one_world(Name).
第三條
語言:Java語言
代碼翻譯:
愛你到天荒地老
代碼:
while(!world.destroy){
System.out.println("i love you");
}
第四 條
語言:C語言
代碼翻譯:
兩隔的`世界;
無名的信件;
短暫的停留;
長久的記憶;
說這么多,只是想說:我想你了。
代碼:
#include
int main()
{
double world;
unsigned letter;
short stay;
long memories;
printf("I miss you. ");
return 0;
}