# why
# what
- ELIZA是一个早期的[[NLP 自然语言处理]]计算机程序,由麻省理工学院的约瑟夫·维森鲍姆(Joseph Weizenbaum)于**1964年至1967年**间开发。它能够通过与用户进行类“对话”的方式,模拟一位“精神分析师”(也就是有点像心理咨询师)来回答用户输入的问题或句子。
# how
### ELIZA 的特点
- **基于模式匹配(Pattern Matching)**
- ELIZA 并没有真正理解对话的含义,而是基于一些关键词和固定的句型模板,对用户输入进行匹配和转换。举个简单的例子,如果用户输入了“我觉得我最近很焦虑”(英文示例:I feel anxious lately),ELIZA 的程序会把句子中的 “I feel…” 匹配到它内部的一个规则,然后把这句话转换成类似“你为什么觉得你最近很焦虑?”(Why do you feel anxious lately?)的句式,再抛回给用户。
- 这样一来,用户就会产生一种“被关注”“被咨询”的感觉,误以为程序真的理解并在回应自己的心理状态。其实它只是按照规则把句子里的关键词找出来,然后替换成另一句话而已。
- 关键词触发
- ELIZA 通常会设置一些关键词,比如“mother(母亲)”、“father(父亲)”或“feel(感觉)”等。当程序识别到用户的输入包含这些词时,就会触发相应的对话脚本或回应模板。例如,如果用户提到“mother”,ELIZA 可能会回复“告诉我更多关于你母亲的事情”之类的话,一切都基于简单的文本匹配和回复库。
### 瓶颈和局限性
ELIZA 似乎能够与你聊天,但它并不是真的理解语义,也无法学习新的语句或词汇。它只是机械地根据关键词和“对照表”来做替换,缺少真正的“思考”或“推理”能力。它也不具备对话上下文的深入记忆,无法像人类那样真正连贯地讨论一个话题。
### ELIZA 示例
- 下面是一个 ELIZA 风格的对话,它只是通过模式匹配,反问用户,并鼓励他们继续对话,这在心理咨询中是一种常见技巧。
```
用户:我最近很焦虑。
ELIZA:你为什么觉得焦虑?
用户:因为工作压力很大。
ELIZA:你能告诉我更多关于你工作的事情吗?
```
- 你可以把 ELIZA 想象成一个“会说话的复读机+模板转换”。比如,你问它:“harry 最近有点郁闷怎么办?”
- 关键词识别:它看到关键词“**郁闷(depressed/anxious 等)**”,就把它当作需要回复情感询问的情况;
- 模式匹配:程序里预先有个模板:“为什么你会觉得 `[关键词] `呢?”
- 然后输出:“为什么你会觉得郁闷呢?”
# how good
# Ref.
- [ChatGPT-ELIZA](https://readwise.io/reader/shared/01jjgbcpvw6kvdmqz103t0h652)