【小沐学NLP】Python实现聊天机器人(ELIZA)
| 1 | 🎈【小沐學NLP】Python實現詞云圖🎈 |
| 2 | 🎈【小沐學NLP】Python實現圖片文字識別🎈 |
| 3 | 🎈【小沐學NLP】Python實現中文、英文分詞🎈 |
| 4 | 🎈【小沐學NLP】Python實現聊天機器人(ELIZA))🎈 |
| 5 | 🎈【小沐學NLP】Python實現聊天機器人(ALICE)🎈 |
| 6 | 🎈【小沐學NLP】Python實現聊天機器人(微軟Azure)🎈 |
| 7 | 🎈【小沐學NLP】Python實現聊天機器人(微軟小冰)🎈 |
| 8 | 🎈【小沐學NLP】Python實現聊天機器人(釘釘機器人)🎈 |
| 9 | 🎈【小沐學NLP】Python實現聊天機器人(微信機器人)🎈 |
| 10 | 🎈【小沐學NLP】Python實現聊天機器人(Selenium、七嘴八舌)🎈 |
| 11 | 🎈【小沐學NLP】Python實現聊天機器人(ChatterBot,代碼示例)🎈 |
| 12 | 🎈【小沐學NLP】Python實現聊天機器人(ChatterBot,集成前端頁面)🎈 |
| 13 | 🎈【小沐學NLP】Python實現聊天機器人(ChatterBot,集成web服務)🎈 |
文章目錄
- 1、簡介
- 2、ELIZA
- 2.1 Eliza Test(java)
- 2.2 wadetb/eliza(python)
- 2.3 eliza-py(python)
- 2.4 nltk.chat.eliza(python)
- 2.5 ELIZA-ChatterBot(python)
- 3、在線機器人
- 3.1 青云客機器人
- 3.2 思知機器人
- 結語
1、簡介
聊天機器人可用于實用的目的,如客戶服務或資訊獲取。有些聊天機器人會搭載自然語言處理系統,但大多簡單的系統只會擷取輸入的關鍵字,再從數據庫中找尋最合適的應答句。聊天機器人是虛擬助理(如Google智能助理)的一部分,可以與許多組織的應用程序,網站以及即時消息平臺(Facebook Messenger)連接。非助理應用程序包括娛樂目的的聊天室,研究和特定產品促銷,社交機器人。
聊天機器人(chatterbot)是一個用來模擬人類對話或聊天的程序。“Eliza”和 “Parry”是早期非常著名的聊天機器人。它試圖建立這樣的程序:至少暫時性地讓一個真正的人類認為他們正在和另一個人聊天。
早期經典的聊天機器人是 ELIZA (1966)與 PARRY (1972)。近期值得注意的則包括 A.L.I.C.E.,Jabberwacky,以及 D.U.D.E。雖然 ELIZA 和 PARRY 僅僅用于模擬筆談,現在許多聊天機器人納入游戲及網絡搜尋的功能。1984年,《警察的胡子造了一半》(The Policeman’s Beard Is Half Constructed)出版,據稱作者是聊天機器人“瑞克特”(Racter)。
相關的人工智能領域是自然語言處理。通常“弱人工智能”(Weak AI) 領域使用專門的軟件或編程語言以完成特定的功能。例如 A.L.I.C.E.使用一種叫做 AIML 的標記式語言,適用于談話代理的功能,并且已被各類開發人員采用,他們的產品叫做愛麗絲機器人(Alicebots)。不過 A.L.I.C.E.仍是純粹運用類型配對的技巧,缺乏思考能力, 跟1966年的 ELIZA 并無不同。“強人工智能”(strong AI) 則不同, 必須有智慧和邏輯推理的能力。
2、ELIZA
伊莉莎(Eliza)是最早的與人對話程序,是由系統工程師約瑟夫·魏澤堡和精神病學家肯尼斯·科爾比在20 世紀60 年代共同編寫的。是世界上第一個真正意義上的聊天機器人。他們將程序命名為伊莉莎,靈感來自于英國著名戲劇家肖伯納的戲劇《偶像》中的角色,它能夠使計算機與人用英語談話。在自然語言理解技術尚未真正取得突破性進展時,這是一個令人費解的現象。
ELIZA是第一個把英語作為輸入和輸出的程序,這是他的一大特性。ELIZA最初的開發者,Eliza 的名字源于愛爾蘭劇作家蕭伯納的戲劇作品《賣花女》中的角色,劇中出身貧寒的賣花女 Eliza 通過學習與上流社會溝通的方式,變成大使館舞會上人人艷羨的“匈牙利王家公主”。作為世界上第一個聊天機器人,Eliza 被其作者賦予了充滿戲劇性的內涵。
ELIZA是一個被設計為模擬精神治療醫師的程序,由麻省理工大學研究員Joseph Weizenbaum設計。程序實際上提供了一些模擬反應來回答用戶提出的問題。它向展示向人們展示了,一個足夠厲害的程序應該是智能的。僅用 200 行代碼就實現了這一過程,使 Eliza 能夠讓人產生被機器聆聽、理解的錯覺。
Weizenbaum編寫Eliza使用的是Lisp語言,一種比較難懂和小眾的程序設計語言。不過他做了非常詳盡的注釋 ,這使得將Eliza移植到別的平臺和語言成了相當容易的一件事。
>>1966年1月,Joseph Weizenbaum教授,寫出了一篇關于Eliza的論文。在 1964 年至 1966 年間,麻省理工學院人工智能實驗室的德裔美國計算機科學家約瑟夫·維森鮑姆(Joseph Weizenbaum)開發了歷史上第一個聊天機器人 —— Eliza。>> 通過 Eliza 的實驗,Joseph Weizenbaum開始質疑阿蘭·圖靈(Alan Turing)在1950 年提出的關于人工智能的想法。圖靈在他的題為“ 計算機械與智能 ”的論文中提出,如果一臺計算機可以通過文本與人類進行令人信服的對話,則可以認為它是智能的。這一思想也就是著名的圖靈測試的基礎。
>> 1976 年,Joseph Weizenbaum發表了《計算能力與人為原因:從判斷到計算》 ,該書對人們為何愿意相信“一臺簡單的機器也許能夠理解復雜的人類情感” 進行了深刻的剖析。盡管ELIZA的實現技術僅為關鍵詞匹配及人工編寫的回復規則,但魏澤鮑姆本人對ELIZA的表現感到吃驚,隨后撰寫了《Computer Power and Human Reason》這本書,表達他對人工智能的特殊情感。
Joseph Weizenbaum: 解釋就是掩飾,越抹越黑。
Eliza的計算機對話模擬程序。最為著名的一段對話腳本隨后被發布在1966年元月期的ACM通訊雜志上。這段發生在計算機程序與一個年青女病人之間的對話記錄如下(程序的回應使用大寫):
Men are all alike. IN WHAT WAY They’re always bugging us about something or other. CAN YOU THINK OF A SPECIFIC EXAMPLE Well, my boyfriend made me come here. YOU BOYFRIEND MADE YOU COME HERE He says I’m depressed much of the time. I AM SORRY TO HEAR YOU ARE DEPRESSED It’s true. I am unhappy. DO YOU THINK COMING HERE WILL HELP YOU NOT TO BE UNHAPPY I need some help, that much seems certain. WHAT WOULD IT MEAN TO YOU IF YOU GOT SOME HELP Perhaps I could learn to get along with my mother. TELL ME MORE ABOUT YOUR FAMILY My mother takes care of me. WHO ELSE IN YOU FAMILY TAKES CARE OF YOU My Father. YOUR FATHER You are like my father in some ways. WHAT RESEMBLANCE DO YOU SEE You are not very aggressive but I think you don’t want me to notice that. WHAT MAKES YOU THINK I AM NOT VERY AGGRESSIVE You don’t argue with me. WHY DO YOU THINK I DON’T ARGUE WITH YOU You are afraid of me. DOES IT PLEASE YOU TO BELIEVE I AM AFRAID OF YOU My father is afraid of everybody. WHAT ELSE COMES TO MIND WHEN YOU THINK OF YOUR FATHER Bullies. DOES THAT HAVE ANYTHING TO DO WITH THE FACT THAT YOUR BOYFRIEND MADE YOU COME HERE 參考文獻: Weizenbaum J. ELIZA—a computer program for the study of natural language communication between man and machine[J]. Communications of the ACM, 1966, 9(1): 36-45.https://web.stanford.edu/class/linguist238/p36-weizenabaum.pdf
2.1 Eliza Test(java)
http://chayden.net/eliza/Eliza.html
2.2 wadetb/eliza(python)
https://github.com/wadetb/eliza
Eliza chatbot in Python:Loosely based on Charles Hayden’s version in Java, at http://chayden.net/eliza/Eliza.html.
運行結果如下(增加了部分規則):
2.3 eliza-py(python)
https://github.com/rdimaio/eliza-py
運行結果如下(增加了部分規則):
2.4 nltk.chat.eliza(python)
https://www.nltk.org/_modules/nltk/chat/eliza.html#demo
2.5 ELIZA-ChatterBot(python)
https://github.com/graylu21/ELIZA-ChatterBot
3、在線機器人
3.1 青云客機器人
青云客智能機器人api是由青云客網絡免費提供的一個智能聊天api 接口,技術人員可直接調用接口實現有趣的人機對話。不用注冊,不用申請key,拿來就用!哈哈!
- 測試代碼如下:
- 測試結果如下:
3.2 思知機器人
思知(OwnThink)AI機器人開放平臺擁有自定義知識庫、語義理解、知識圖譜、對話場景等功能,機器人采用了基于知識圖譜的語義感知與理解。
- 測試代碼1如下:
- 測試結果1如下:
- 測試代碼2:
- 測試結果2:
結語
如果您覺得該方法或代碼有一點點用處,可以給作者點個贊,或打賞杯咖啡;╮( ̄▽ ̄)╭
如果您感覺方法或代碼不咋地//(ㄒoㄒ)//,就在評論處留言,作者繼續改進;o_O???
如果您需要相關功能的代碼定制化開發,可以留言私信作者;(????)
感謝各位大佬童鞋們的支持!( ′ ▽′ )ノ ( ′ ▽′)っ!!!
總結
以上是生活随笔為你收集整理的【小沐学NLP】Python实现聊天机器人(ELIZA)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows和Linux双系统下gru
- 下一篇: websocket python爬虫_p