【小沐学NLP】Python实现聊天机器人(ELIZA)
| 1 | 🎈【小沐學NLP】Python實現(xiàn)詞云圖🎈 |
| 2 | 🎈【小沐學NLP】Python實現(xiàn)圖片文字識別🎈 |
| 3 | 🎈【小沐學NLP】Python實現(xiàn)中文、英文分詞🎈 |
| 4 | 🎈【小沐學NLP】Python實現(xiàn)聊天機器人(ELIZA))🎈 |
| 5 | 🎈【小沐學NLP】Python實現(xiàn)聊天機器人(ALICE)🎈 |
| 6 | 🎈【小沐學NLP】Python實現(xiàn)聊天機器人(微軟Azure)🎈 |
| 7 | 🎈【小沐學NLP】Python實現(xiàn)聊天機器人(微軟小冰)🎈 |
| 8 | 🎈【小沐學NLP】Python實現(xiàn)聊天機器人(釘釘機器人)🎈 |
| 9 | 🎈【小沐學NLP】Python實現(xiàn)聊天機器人(微信機器人)🎈 |
| 10 | 🎈【小沐學NLP】Python實現(xiàn)聊天機器人(Selenium、七嘴八舌)🎈 |
| 11 | 🎈【小沐學NLP】Python實現(xiàn)聊天機器人(ChatterBot,代碼示例)🎈 |
| 12 | 🎈【小沐學NLP】Python實現(xiàn)聊天機器人(ChatterBot,集成前端頁面)🎈 |
| 13 | 🎈【小沐學NLP】Python實現(xiàn)聊天機器人(ChatterBot,集成web服務(wù))🎈 |
文章目錄
- 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 思知機器人
- 結(jié)語
1、簡介
聊天機器人可用于實用的目的,如客戶服務(wù)或資訊獲取。有些聊天機器人會搭載自然語言處理系統(tǒng),但大多簡單的系統(tǒng)只會擷取輸入的關(guān)鍵字,再從數(shù)據(jù)庫中找尋最合適的應(yīng)答句。聊天機器人是虛擬助理(如Google智能助理)的一部分,可以與許多組織的應(yīng)用程序,網(wǎng)站以及即時消息平臺(Facebook Messenger)連接。非助理應(yīng)用程序包括娛樂目的的聊天室,研究和特定產(chǎn)品促銷,社交機器人。
聊天機器人(chatterbot)是一個用來模擬人類對話或聊天的程序。“Eliza”和 “Parry”是早期非常著名的聊天機器人。它試圖建立這樣的程序:至少暫時性地讓一個真正的人類認為他們正在和另一個人聊天。
早期經(jīng)典的聊天機器人是 ELIZA (1966)與 PARRY (1972)。近期值得注意的則包括 A.L.I.C.E.,Jabberwacky,以及 D.U.D.E。雖然 ELIZA 和 PARRY 僅僅用于模擬筆談,現(xiàn)在許多聊天機器人納入游戲及網(wǎng)絡(luò)搜尋的功能。1984年,《警察的胡子造了一半》(The Policeman’s Beard Is Half Constructed)出版,據(jù)稱作者是聊天機器人“瑞克特”(Racter)。
相關(guān)的人工智能領(lǐng)域是自然語言處理。通常“弱人工智能”(Weak AI) 領(lǐng)域使用專門的軟件或編程語言以完成特定的功能。例如 A.L.I.C.E.使用一種叫做 AIML 的標記式語言,適用于談話代理的功能,并且已被各類開發(fā)人員采用,他們的產(chǎn)品叫做愛麗絲機器人(Alicebots)。不過 A.L.I.C.E.仍是純粹運用類型配對的技巧,缺乏思考能力, 跟1966年的 ELIZA 并無不同。“強人工智能”(strong AI) 則不同, 必須有智慧和邏輯推理的能力。
2、ELIZA
伊莉莎(Eliza)是最早的與人對話程序,是由系統(tǒng)工程師約瑟夫·魏澤堡和精神病學家肯尼斯·科爾比在20 世紀60 年代共同編寫的。是世界上第一個真正意義上的聊天機器人。他們將程序命名為伊莉莎,靈感來自于英國著名戲劇家肖伯納的戲劇《偶像》中的角色,它能夠使計算機與人用英語談話。在自然語言理解技術(shù)尚未真正取得突破性進展時,這是一個令人費解的現(xiàn)象。
ELIZA是第一個把英語作為輸入和輸出的程序,這是他的一大特性。ELIZA最初的開發(fā)者,Eliza 的名字源于愛爾蘭劇作家蕭伯納的戲劇作品《賣花女》中的角色,劇中出身貧寒的賣花女 Eliza 通過學習與上流社會溝通的方式,變成大使館舞會上人人艷羨的“匈牙利王家公主”。作為世界上第一個聊天機器人,Eliza 被其作者賦予了充滿戲劇性的內(nèi)涵。
ELIZA是一個被設(shè)計為模擬精神治療醫(yī)師的程序,由麻省理工大學研究員Joseph Weizenbaum設(shè)計。程序?qū)嶋H上提供了一些模擬反應(yīng)來回答用戶提出的問題。它向展示向人們展示了,一個足夠厲害的程序應(yīng)該是智能的。僅用 200 行代碼就實現(xiàn)了這一過程,使 Eliza 能夠讓人產(chǎn)生被機器聆聽、理解的錯覺。
Weizenbaum編寫Eliza使用的是Lisp語言,一種比較難懂和小眾的程序設(shè)計語言。不過他做了非常詳盡的注釋 ,這使得將Eliza移植到別的平臺和語言成了相當容易的一件事。
>>1966年1月,Joseph Weizenbaum教授,寫出了一篇關(guān)于Eliza的論文。在 1964 年至 1966 年間,麻省理工學院人工智能實驗室的德裔美國計算機科學家約瑟夫·維森鮑姆(Joseph Weizenbaum)開發(fā)了歷史上第一個聊天機器人 —— Eliza。>> 通過 Eliza 的實驗,Joseph Weizenbaum開始質(zhì)疑阿蘭·圖靈(Alan Turing)在1950 年提出的關(guān)于人工智能的想法。圖靈在他的題為“ 計算機械與智能 ”的論文中提出,如果一臺計算機可以通過文本與人類進行令人信服的對話,則可以認為它是智能的。這一思想也就是著名的圖靈測試的基礎(chǔ)。
>> 1976 年,Joseph Weizenbaum發(fā)表了《計算能力與人為原因:從判斷到計算》 ,該書對人們?yōu)楹卧敢庀嘈拧耙慌_簡單的機器也許能夠理解復雜的人類情感” 進行了深刻的剖析。盡管ELIZA的實現(xiàn)技術(shù)僅為關(guān)鍵詞匹配及人工編寫的回復規(guī)則,但魏澤鮑姆本人對ELIZA的表現(xiàn)感到吃驚,隨后撰寫了《Computer Power and Human Reason》這本書,表達他對人工智能的特殊情感。
Joseph Weizenbaum: 解釋就是掩飾,越抹越黑。
Eliza的計算機對話模擬程序。最為著名的一段對話腳本隨后被發(fā)布在1966年元月期的ACM通訊雜志上。這段發(fā)生在計算機程序與一個年青女病人之間的對話記錄如下(程序的回應(yīng)使用大寫):
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.
運行結(jié)果如下(增加了部分規(guī)則):
2.3 eliza-py(python)
https://github.com/rdimaio/eliza-py
運行結(jié)果如下(增加了部分規(guī)則):
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是由青云客網(wǎng)絡(luò)免費提供的一個智能聊天api 接口,技術(shù)人員可直接調(diào)用接口實現(xiàn)有趣的人機對話。不用注冊,不用申請key,拿來就用!哈哈!
- 測試代碼如下:
- 測試結(jié)果如下:
3.2 思知機器人
思知(OwnThink)AI機器人開放平臺擁有自定義知識庫、語義理解、知識圖譜、對話場景等功能,機器人采用了基于知識圖譜的語義感知與理解。
- 測試代碼1如下:
- 測試結(jié)果1如下:
- 測試代碼2:
- 測試結(jié)果2:
結(jié)語
如果您覺得該方法或代碼有一點點用處,可以給作者點個贊,或打賞杯咖啡;╮( ̄▽ ̄)╭
如果您感覺方法或代碼不咋地//(ㄒoㄒ)//,就在評論處留言,作者繼續(xù)改進;o_O???
如果您需要相關(guān)功能的代碼定制化開發(fā),可以留言私信作者;(????)
感謝各位大佬童鞋們的支持!( ′ ▽′ )ノ ( ′ ▽′)っ!!!
總結(jié)
以上是生活随笔為你收集整理的【小沐学NLP】Python实现聊天机器人(ELIZA)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Windows和Linux双系统下gru
- 下一篇: JavaScript的输出语句