什么是上下文?
第1章:什么是上下文?
小明的问题让老师愣住了
周一的早晨,阳光从窗户照进教室。小明一进教室就跑向正在批改作业的王老师。
“老师老师!”小明兴奋地喊道,“六点半!”
王老师抬起头,眼睛里满是疑惑:“什么?”
“六点半!”小明重复了一遍,声音更大了。
王老师放下红笔,摸了摸小明的额头:“小明,你发烧了吗?哪里不舒服?”
小明急得直跺脚:“老师,我没生病!我就是想说六点半!”
这下王老师更糊涂了:“六点半怎么了?你是要问几点放学吗?三点半。是要问什么兴趣班的时间吗?你得说清楚是什么兴趣班啊!”
小明这才反应过来,他不好意思地挠挠头:“啊……我忘了说前面的话了。我是问您,图书馆六点半开门吗?我想放学后去看书。”
王老师笑了:“你这个小马虎!原来是想问图书馆的事啊。你要是直接说'图书馆六点半开门吗',我不就明白了吗?”
旁边的小红也笑了:“小明,你说话怎么跟发电报似的,光说几个字,别人怎么知道你想什么呢?”
小明嘟囔着:“可是我觉得我说得很清楚啊,六点半嘛,就是那个时间点……”
你有没有觉得小明有点冤?明明自己知道想问什么,为什么王老师却完全听不懂呢?
这就是我们今天要学习的魔法——上下文。
---
上下文就是说话的背景和前提
让我们先玩一个小游戏。看看下面这几个词,你脑子里会浮现出什么画面?
- 苹果
- 香蕉
- 牛奶
- 面包
你的脑海里是不是出现了一个早餐的场景?也许是一个摆满了食物的餐桌,也许是你早上匆匆忙忙吃的简单早餐。
现在我们换一组词:
- 苹果
- 老师
- 黑板
- 作业
你的脑海里是不是又出现了另一个场景?这回是教室里的画面。
同样都有“苹果”这个词,为什么你想到的画面完全不同?
因为后面的词给了你线索!当你看到“牛奶”“面包”时,你的大脑自动把“苹果”理解成了早餐桌上的水果;而当你看到“老师”“黑板”时,你的大脑又把“苹果”理解成了课本里学到的知识,也许是一篇关于牛顿和苹果的课文,或者是语文课上学的《苹果落地》的故事。
这就是上下文的力量!
上下文就是围绕着一句话的前前后后的信息。它像一座桥梁,连接着说话的人和听话的人。没有这座桥,就算你说的是真话,别人也可能听不懂你在说什么。
上下文的两部分
上下文一般包含两个部分:
第一部分:说了什么。 这是话语本身,是你说出来的那些话。
第二部分:还说了什么。 这是话语之外的背景信息,包括:
- 说话的时间
- 说话的地点
- 说话的人是谁
- 之前说了什么
- 周围环境是什么样的
回到小明的问题。当小明说“六点半”时,他脑子里的上下文是完整的:
- 他想去图书馆
- 他想放学后去看书
- 他不知道图书馆几点开门
- 他想确认图书馆下午开门的时间
但王老师看到的上下文完全不一样:
- 她在教室里批改作业
- 她看到小明跑过来
- 小明只说了“六点半”三个字
所以在王老师看来,“六点半”可能是小明的体温,可能是小明想问她几点了,也可能是小明在自言自语说时间。小明脑子里的完整信息和王老师看到的残缺信息,差距实在太大了!
这就像拼图。小明手里有完整的拼图,他知道每一片应该放在哪里。但当他说“六点半”的时候,他只递给王老师拼图的一小片。王老师怎么知道这一小片是天空还是地板呢?
上下文和拼图
把上下文想象成拼图游戏会有助于理解:
每一句完整的话就像一块完整的拼图。但这块拼图不是凭空出现的,它必须和周围的拼图连在一起才能成型。
当你听到一句话时,你的大脑会自动做两件事:
第一件事:找线索。 大脑会看看这句话周围有什么,看看说话的人是谁,在什么场合说的。
第二件事:猜意思。 大脑会根据这些线索,猜出说话的人真正想表达的意思。
比如你听到爸爸说“热”,你可能会想:
- 是天气热吗?(也许要开空调)
- 是饭热吗?(也许要吹一吹)
- 是他运动后热吗?(也许要喝水)
- 还是他心里烦躁?(也许需要安慰)
然后你会根据其他线索来判断:如果是夏天,他说“热”,那大概率是天气热;如果你正在吃饭,他说“热”,那大概率是饭太烫了。
大脑做这些判断的速度非常快,快到你几乎感觉不到这个过程。这就是为什么有上下文的时候,你总能听懂别人在说什么——因为你的大脑在自动填补那些没说出口的信息。
但如果没有上下文,或者上下文不清楚,大脑就麻烦了。它不知道该选哪个意思,就会产生困惑。就像小明说“六点半”时,王老师的大脑完全不知道该往哪个方向猜。
---
生活处处有上下文
其实,不只是说话的时候需要上下文,我们每天做的很多事情都离不开上下文。发现这一点,你会对“上下文”有更深的理解。
对话里的上下文
最明显的例子就是对话。让我们看看下面这段对话:
小红:“妈妈,我回来了!” 妈妈:“今天学校有什么有趣的事吗?” 小红:“今天我们学了新的舞蹈,可难了!” 妈妈:“是吗?那你学会了吗?” 小红:“基本动作会了,但是转身的时候总是转错方向。” 妈妈:“没关系,多练练就好了。”
这段简短的对话里藏着多少上下文?
首先,小红和妈妈都知道:
- 小红是小学生
- 小红下午有舞蹈课
- 她们是母女关系
- 这是放学后的时间
- 小红刚刚到家
这些共同的知识就是对话的背景,也就是上下文。有了这些背景,小红不需要说“今天放学后我参加了舞蹈兴趣班”,她只需要说“今天我们学了新的舞蹈”,妈妈就完全明白了。
如果把这些背景都拿掉,小红只能说:“今天下午的课外活动中,我参加的舞蹈兴趣班安排了一次新课程,内容是某个舞蹈的基本动作。”这样说话多累啊!
而且对话还有一个特点:每一句话都在前一句话的基础上展开。就像搭积木一样,一句话搭在另一句话上面,越搭越高。
妈妈问“学会了吗”,这个问题本身就建立在“学了新舞蹈”这个基础上。小红回答“转身的时候总是转错方向”,这个回答又建立在“基本动作会了”这个基础上。
如果我们把这段对话的“上下文链”画出来,大概是这样的:
```mermaid graph TD A[小红放学回家] --> B[小红说:今天我们学了新的舞蹈] B --> C[妈妈问:那你学会了吗] C --> D[小红答:基本动作会了] D --> E[小红补充:但转身时总转错方向] E --> F[妈妈鼓励:多练练就好]
style A fill:#f9f,stroke:#333,stroke-width:2px style F fill:#9f9,stroke:#333,stroke-width:2px ```
看到了吗?每一句话都是建立在前面那句话的基础上的。这就是上下文链。它不是一条直线,而是一环扣一环的链条。如果中间哪一环断了,后面的话就会变得莫名其妙。
故事里的上下文
故事更需要上下文。你有没有过这种体验:有人给你讲一个故事,结果你听了一半还是一头雾水?
“我跟你说,昨天那个人真的太气人了!他居然……”
你:“等等,谁气人了?哪个人?昨天发生了什么事?”
这就是上下文不完整的情况。讲故事的人脑子里的上下文可能是这样的:
- 昨天是他和好朋友小李约好一起打篮球的日子
- 小李答应早上九点在球场见面
- 结果小李迟到了半小时
- 更过分的是,小李来的时候手里还拿着奶茶,说是顺路买的
但在听的人看来,这些信息一概不知道,只听到“太气人了”这三个字,当然不明白在气什么。
好的故事讲述者会特别注意上下文的建立。他们会在故事开始的时候交代清楚:时间、地点、人物、起因。这些要素就像是拼图的边框,先把边框拼好,后面的内容才有地方放。
比如这样开头:
“我跟你说,昨天发生了一件特别气人的事。昨天是我和小李约好打篮球的日子,我们提前一周就约好了,早上九点在篮球场见。结果……”
你看,这样一交代,你是不是就清楚多了?接下来不管发生什么,你都能跟上节奏。
游戏里的上下文
玩游戏的时候也离不开上下文。想想你玩的各种游戏:
下棋的时候,你知道现在轮到谁走,上一步走了什么,每个棋子的位置在哪里。没有这些上下文,你根本不知道下一步该怎么走。
玩捉迷藏的时候,你知道“鬼”是谁,“藏”的人有哪些,游戏从哪里开始数数。如果没有这些上下文,游戏根本无法进行。
甚至玩过家家这样的角色扮演游戏,也需要上下文。每个人扮演什么角色?场景是什么?剧情发展到哪里了?没有这些共同的理解,“演戏”就会变成各说各话。
有一个著名的心理学游戏叫“画词游戏”,可以很好地说明上下文的重要性:
第一个人看一个词,比如“苹果”,然后把这个词画成一幅画。 第二个人看这幅画,猜出是什么词,然后再把这个词画成另一幅画。 第三个人看第二幅画,再猜词,再画。
几轮下来,你会发现最初的那个词已经变得面目全非了!
比如“苹果”可能被画成一个圆圆的红色东西,传到第三个人手里时,他已经不认得这是什么了。也许第三个人会猜成“樱桃”或者“气球”,然后画出一个完全不同的东西。
为什么会这样?因为在传递的过程中,画代替了词,画里的人物的理解又加入了新的上下文。一幅画承载的信息和原词承载的信息是不同的,在传递过程中,很多细节被丢失、被误解、被重新解释。
这个游戏告诉我们:信息在传递过程中会“变形”,上下文越多、越准确,变形就越少;上下文越少、越模糊,变形就越多。
学校里的上下文
学校是学习知识的地方,课堂上更是处处需要上下文。
数学课上,老师讲新知识之前,往往会先复习旧知识。为什么?因为旧知识是新知识的上下文!如果你不知道加法怎么算,你就很难理解乘法;如果你不知道分数是什么,你就很难学会百分数。
语文课上,老师让你分析一句话的意思时,总会先让你看看这句话在哪个段落里、前后说了什么。这就是上下文在帮助你理解。单独拿出一个句子,你可以有多种理解;但放回原来的段落里,意思就清楚了。
英语课也是一样的。中英文有很多表达方式不同的地方。比如英语说"I saw a saw saw a saw",这句话里有四个"saw",但它们的意思各不相同:
- 第一个"saw"是动词,看见
- 第二个"saw"是名词,锯子
- 第三个"saw"是动词,锯
- 第四个"saw"是名词,锯子
如果不看上下文,你能分清吗?
---
没有上下文会产生误解和混乱
现在你知道了上下文很重要。那如果没有了上下文,会发生什么呢?
让我们来做一个实验。
实验一:猜猜看
假设你收到了这样一条消息:
“快!”
你会有什么反应?你会怎么做?
也许你会:
- 以为是朋友在叫你
- 以为是紧急情况需要帮忙
- 以为是让你快点去哪里
- 或者完全不知道什么意思
同样一个字,在不同的上下文里可以有很多种完全不同的含义:
- 朋友发来“快!”——可能是让你快点回复
- 妈妈发来“快!”——可能是催你起床
- 老师发来“快!”——可能是让你快点交作业
- 陌生人发来“快!”——你可能会以为是诈骗
一条只有一个字的消息,你根本无法判断该怎么反应。这就是缺少上下文带来的混乱。
实验二:同样的内容,不同的意思
来看看下面这几句话,猜猜它们是什么意思:
1. “你今天真好看。”
这句话是什么意思?如果是在时装店里,导购员对你说这句话,可能是在夸你试穿的衣服好看。如果是好朋友对你说,可能是真的在夸你今天的打扮。如果是在选美比赛里,可能是评委在点评。
2. “那可不一定。”
这句话是什么意思?如果是在讨论明天的天气,“那可不一定”可能是在说“明天不一定会下雨”。如果是在讨论考试结果,“那可不一定”可能是在说“别高兴太早,分数还没出来呢”。如果是在讨论朋友会不会来聚会,“那可不一定”可能是在说“得看情况,不确定”。
3. “真的假的?”
这句话是什么意思?可以是怀疑(你不会在骗我吧?),可以是惊讶(这太不可思议了!),可以是确认(你说的是真事吗?),还可以是调侃(我知道你在开玩笑)。
同样的话,不同的上下文,不同的语气,不同的说话对象,意思完全不同。如果没有足够的上下文,语言就会变成一团迷雾。
真实世界里的“上下文事故”
这样的例子在真实世界里可不少。
有一个经典的笑话:
> 一个人去图书馆,想问管理员:“这里可以吃东西吗?”但他害羞,不好意思问,于是就问:“这里可以吸烟吗?”管理员说:“当然不可以。”这个人就老老实实地坐下来,开始吃面包。 > > 管理员很奇怪:“你不是要吸烟吗?怎么在吃东西?” > > 这个人更奇怪:“你不是说不可以吸烟吗?我没吸烟啊,我在吃东西啊。”
你看,一个关于“上下文”的误会,让双方都很困惑。
还有一个更严重的例子:
> 一家医院的护士给病人送药,嘱咐说:“请在睡前服用。” > > 病人问:“睡前是指什么时候?” > > 护士说:“就是睡觉之前。” > > 病人又问:“那睡觉之前多久吃?” > > 护士说:“睡前就是睡前,没有多久的问题。” > > 病人糊涂了。结果他一直等着,等到凌晨三点还在等着“睡前”的到来,才终于吃了药。
护士以为“睡前”是常识,不需要解释。但病人不确定“睡前”具体是什么时候。这就是一个因为上下文不清晰而产生的笑话——虽然有点冷,但说明了一个道理:你以为的常识,在别人那里可能不是常识。
上下文的层次
上下文不是只有一种,它有不同的层次。越是在日常生活中的对话,上下文越容易理解,因为你们有共同的背景。越是正式、专业的场合,越需要明确的上下文。
日常生活层:朋友之间的闲聊,往往不需要太多解释,因为你们熟悉彼此,知道对方的习惯、性格、最近在忙什么。
学校学习层:课堂上,老师的讲解会建立在课本内容和之前的课程基础上。如果你缺了一节课,后面的内容就可能听不懂。
工作职场层:职场沟通需要更清晰的上下文。一封邮件、一份报告,都需要把背景、目的、时间、要求等交代清楚,否则对方不知道该怎么做。
国际交流层:不同国家、不同文化背景的人交流,更需要明确的上下文。因为同样的动作、表情、词语,在不同文化里可能有完全不同的含义。
所以你看,上下文不只是“说话”的事情,它渗透在生活的方方面面。
---
AI也需要上下文才能正确回答问题
讲到这里,也许你会想:上下文对人类来说很重要,但对电脑呢?对人工智能呢?
答案是:更重要!
AI没有“常识”这个上下文
人类在交流的时候,会自动带入很多“常识”作为上下文。比如你问朋友:“今天吃什么?”朋友不会问你“你说的是哪个今天”“你说的吃是指进食动作吗”“你的吃是指人吃东西还是动物吃东西”。
这些常识在人类的大脑中是默认的,不需要说出来。人类有常识推理的能力,能够根据日常经验自动补充缺失的信息。
但人工智能目前还不太擅长这个。
一个刚刚学会说话的人工智能,就像一个刚刚学习说话的小朋友。它需要明确的上下文,否则它不知道该怎么回答。
比如你问人工智能:“小明后来怎么样了?”
如果没有人告诉人工智能“小明”是谁,“后来”是指什么时候,“怎么样了”是指什么方面,人工智能完全无法回答。
但如果是人类朋友问你:“小明后来怎么样了?”你可能会反问:“哪个小明?”“后来是什么时候?”或者你会根据之前的对话,猜到对方在说谁。
这就是上下文的力量。人类有自动猜测的能力,人工智能目前还做不到那么智能。
对话上下文
现在很多人工智能可以和你对话。这是怎么办到的呢?
秘密在于:人工智能会记住你们之前说了什么。
当你和人工智能开始一段对话时,它会把你说的每一句话都记住。当你问新问题时,它会结合之前的问题和回答一起来理解你的新问题。
比如:
你:我想养一只宠物。 AI:好的,你想要什么类型的宠物呢?猫、狗、鱼还是别的什么? 你:猫吧。 AI:猫是很可爱的宠物。你有想过养什么品种吗? 你:不要太贵的。 AI:明白了。有些猫品种价格较高,比如布偶猫、缅因猫;有些比较亲民,比如中华田园猫、英国短毛猫。你可以考虑这些价格适中的品种。
在这段对话里,AI记住了:
- 你想养宠物
- 你选择了猫
- 你的预算是不要太贵
当你说“不要太贵的”时,AI知道这不是在说猫的喂养费用贵,而是在说买猫的价格要适中。这就是对话上下文在起作用。
上下文太长会怎样
但上下文不是越多越好的。
想象一下,你和一个人聊天,你们聊了两个小时,从早餐聊到晚餐,从学校聊到兴趣班,从天气聊到作业。你突然问一句:“那我们周六见?”对方可能需要想一想才能明白你说的是什么事情。
人工智能也是这样。如果上下文太长,人工智能需要处理的信息就很多,可能会:
第一,忘记重要的事情。 就像你聊天太久会忘记前面说过什么一样,人工智能也有“记忆”限制。如果对话太长,它可能会丢失一些早期的重要信息。
第二,理解出现偏差。 当上下文很长时,后面的内容可能会和前面的内容产生冲突或者混淆,人工智能可能会错误地理解你的意思。
第三,反应变慢。 处理大量的上下文需要更多的时间,就像你需要更多时间来阅读和理解一封长信一样,人工智能也需要更多时间来处理长对话。
所以,有时候人工智能会说“对不起,我们的对话太长了,我可能忘记了一些之前的内容”。这就是因为上下文太长,超过了它的处理能力。
为什么不能突然问一个毫无关联的问题
现在我们可以回答最开始的问题了:为什么不能突然问一个毫无关联的问题?
答案很简单:因为没有上下文,人工智能(或者任何人)都不知道该怎么回答。
你问:“今天天气怎么样?” 我回答:“今天是晴天,温度25度,适合户外活动。”
然后你突然问:“那你觉得人生的意义是什么?”
我该怎么回答?这两个问题之间没有任何联系,你没有给我任何上下文来理解你为什么问这个问题。我可以理解为:
- 你在做哲学研究
- 你刚刚看了一本关于人生意义的书
- 你心情不好,需要开导
- 你只是随便问问
- 你是不是在故意测试我?
这就是话题跳跃的问题。当两个话题之间没有明显的联系,又没有上下文来解释这种联系,任何人都很难给出好的回答。
好的提问应该是这样的:
你问:“今天天气怎么样?” 我回答:“今天是晴天,温度25度,适合户外活动。” 你问:“这么好的天气,你觉得人生的意义是什么?”(或者你解释一下:“我刚才看了一本书,里面讨论了人生的意义,想听听你的看法。”)
这样我就有了上下文。我知道你在看完一本书后,想听听我的看法,而不是在问今天出去户外活动的人生意义。
给AI一个好的上下文
那么,怎样才能让人工智能更好地回答你的问题呢?
第一,提供背景。 告诉人工智能你为什么问这个问题,你想做什么。比如不要说“帮我写一篇文章”,而是说“我要写一篇关于环保的演讲稿,这是我们学校环保周的活动,需要三分钟长,要能让同学们行动起来”。
第二,描述你的情况。 告诉人工智能你是谁,你的年龄,你的知识水平,你的需求。比如不要说“教我学编程”,而是