据说Eliza是第一个用来做心理咨询的聊天机器人,诞生于1966年。这一段用来介绍Eliza。
——下面这段斜体文字转自:https://blog.csdn.net/MIcF435p6D221sSdLd2/article/details/79739110
——作者: Danny Lan(Neeke),现任 Google 科学家,曾任美国一家智能监控公司的 Director of R&D, 对视频和多媒体的智能分析有深入研究。作为主要成员,他曾代表卡耐基梅隆大学在美国国家标准总局(NIST)举办的视频智能分析大赛中连续多年进入前三。其他参赛团队来自著名公司 IBM, BBN 等,以及包括斯坦福在内的多所世界顶级高校或科研机构。他在多个 AI 会议和杂志发表论文 20 余篇,论文引用次数近千。
“下面来开始讲第一个比较著名的 Chatbot,叫做 Eliza。
Eliza 诞生于 1966 年,发明者是 MIT 一名叫 Joseph 的教授。Eliza 一开始的角色是一名心理学家,它所践行的疗法叫人本主义疗法,人本主义疗法特别有意思,他希望对求助者创造无条件的支持和鼓励,使的求助者能够发现自己的问题,所以他特别关注求助者的本身,机器人只是做一个陪伴,只要帮他理清思路而已。这样,Eliza 可以避免被问到关于自己的问题,它只是做一个基本的陪伴而已,任务比较简单。
有趣的是 Joseph 发明 Eliza 之后发觉它特别 powerful,很多人包括他的助手都愿意跟 Eliza 聊天,并且聊自己很私密的事情,最后还要求 Joseph 不能够看他们的聊天记录。Joseph 就觉得未来机器人的发展会很可怕,会涉及到拥有私人的秘密,可以做很多坏事,他花了很多时间来反对研究 Chatbot,反对自己的研究的成果。”
/*-------------------------------分割线--------------------------------------------------------------------------------------------------------------------------------*/
OK,在网上找到一份用python实现的Eliza源码,试着运行了一下,不错,可以跑起来;又接着和Eliza聊了会天,这是聊天记录。
Therapist
---------
Talk to the program by typing in plain English, using normal upper-
and lower-case letters and punctuation.Enter "quit" when done.
========================================================================
Hello.How are you feeling today?
>good , just a little tired.
Can you elaborate on that? 这是需要学习的地方:你能详细描述一下吗?
>i feel tired and i think maybe i need more sleep.
Do you often feel tired and you think maybe you need more sleep? 这是一个好问题?确定问题程度;
>no, not often, a couple of days per week.
Why do you say that no, not often, a couple of days per week? 这个问题不大好,不像人类;
>since most of time, i feel good and energyful.
How does that make you feel? 这个问题不错,帮助来访者探索问题背后的原因。或者说,挖掘深层次的问题;
>only if i have enough sleep and rest.
Please tell me more. 锲而不舍的机器人,这里觉得有点烦,但仍然耐着性子回答了机器人;
>every day, after work, i could spend 4 to 5 hours on study, rest, taking shower and something else. and i could sleep about 7 hours. if i get enought rest and sleep, i will feel good in tomorrow morning.
Can you elaborate on that? 有点不耐烦了;
>just like a new man.
Can you elaborate on that? 这个问题倒是出人意料的好问题;
>feel the day is new day, the air is fresh, and everything is new. and i could see the world in different view point.
Very interesting. 非常好的回应;
>yes, i think so.
OK, but can you elaborate a bit? 终于让我失去耐心;
>oh, i think i've descibed this enougth. thanks.
Let's change focus a bit... Tell me about your family.
>maybe next time.
How do you feel when you say that?
>nice to meet you. bye.
Please tell me more.
>bye bye.
I see.
>quit.
Thank you, that will be $150.Have a good day! 居然收费这么贵,oh my god.
(聊天用English进行,高亮字体是聊天后我写的分析和注释)
怎么说呢,在整个聊天过程中,不觉得Eliza是人类,毕竟她的程序毕竟简单,原理就是匹配然后转换,如果发现你说的话中,有"I need ,I feel , I want“之类的词和短语,她就会把这些句子提取出来,转换成why do you need ... Are you sure you need ...这样的句子。如果没有匹配到,她就会说:tell me more, 或者要去来访者详细描述。
这就是助人三阶段里面的探索阶段,心理咨询师要做的事情:帮助来访者探索想法和情感。程序确实很简单,但有效吗?怎么说呢,如果来访者能够耐住性子,根据Eliza的提问,一步步去回答的话,多少是有效的。
比如这次对话,一开始我只是说,觉得有点困,没想到Eliza让我详细描述,我描述了一遍,她又接着问,会经常感觉疲惫吗?这确实是很专业的提问:确认来访者问题的程度。接下来又深挖问题底层的影响因素。然后又引导我详细描述好的感觉,是实话,描述好的感觉时,整个人是感觉好一些的,而且,感觉自己的视野被打开了。
然后Eliza也有一些积极的反馈,比如:Very interesting. 说实话,这句回应让我眼前一亮,感觉Eliza有人情味了。
当然,后面她的问题过于程式化,我终于失去耐心,终止了谈话,她友好的结束了谈话,然后要收费150刀,知识就是金钱啊。
按照Danny的说法, Eliza的发明人是Joseph 教授,然后Eliza采用的方式是人本主义(卡尔罗杰斯)的方法,为来访者提供无条件的积极关注。有那么几个瞬间,我觉得Eliza确实是在倾听我说话,比如她回应说 Very interesting的时候。当然,Eliza也是来帮助我们梳理思路,或者说探索想法的,基本上,她也做到了,和她说话之前,我没有感觉困倦对我有什么特别不好的影响,而聊完之后,我意识到,如果拥有一个精力充沛的清晨,我的视野将更加宽阔。
这确实是Eliza启发我思考后的结果。
不过,收费$150仍然是太贵了,好在各位感兴趣的小伙伴,可以自己运行一下这个程序,这样,就不必缴费了。
当然,Eliza可以做哪些改进呢?
我觉得有一个改进很容易做到,当来访者敲入回答之后,稍微等待几秒钟,然后再回答,这样会好一些,来访者会觉得对面的人确实在听我说话,而且,她每次提问前,都在思考。这样,Eliza会表现得更像人类,而来访者,也会觉得确确实实受到了关注。
附录:程序源码:
https://www.nltk.org/_modules/nltk/chat/eliza.html#demo
运行程序需要在电脑上安装python3.0以上版本,然后安装nltk库,感兴趣的小伙伴可以发豆邮详聊。
有空也可以读一下这些源码,挺有趣的,比如这段:
r"Because(.*)", ( "Is that the real reason?", "What other reasons come to mind?", "Does that reason apply to anything else?", "If%1,what else must be true?", ),
意思是,当来访者说的话中出现“因为..."字样,Eliza要怎样回应:
是不是很有启发?Eliza并没有否认来访者发现的原因,但她促使来访者考虑更多的可能性,好一位循循善诱的老师啊。
再比如:
r"(.*)sorry(.*)", ( "There are many times when no apology is needed.", "What feelings do you have when you apologize?", ),
当来访者说“sorry”的时候,Eliza会安慰来访者,很多时候不必说抱歉,也有可能帮助来访者探索当下的情感(即时化技术?),是不是感觉比我们人类更会安慰人呢?