第 08 课:Embedding,文字为什么能变成数字
“几点关门”和“闭馆时间”没有用同样的词,你却知道它们在问同一件事。让搜索也能找到这种联系,就是理解 Embedding 的一个好入口。
不用先算一串数字。我们先看看,为什么搜索需要把文字换一种方式表示。
给文字一个可以比较的位置
地图用坐标表示位置,让你能比较两个地点离得多近。Embedding 也把文字变成一串数字,这串数字叫向量,便于系统比较文本特征。地图是个类比;实际向量常有很多维,不能直接把某一维读成“借书程度”或“开馆程度”。
常见做法是先把资料片段转成向量保存,提问时再把问题转成兼容的向量,然后找相近的候选。兼容很重要:两个不相关模型输出的数字,不能随意放在同一个空间里比较。
这样,“书能留多久”可能找到写着“借期十四天”的 B,即使原文没有“留多久”。效果仍取决于模型、语言和任务,数字、否定词与近似的旧版本都可能让检索犯错。
相近的内容,可能回答的是另一件事
问“归还日期能往后推几天”,B 的十四天与 C 的七天都谈时间。但 B 是首次借期,C 是续借延长。找到 B 看起来很相关,仍然不能拿十四天回答这次问题。
再看两句话:“本馆提供续借服务”和“符合条件可续借一次、延长七天”。它们主题很像,能回答次数和天数的却是后一句。检索要找的是有用证据,不能停在“都谈了续借”。
所以看到相似度分数时,别把它当成答案正确的百分比。它反映某种表示和计算方法下的接近程度。版本、条件和原文内容,还得另外核对。
先做一次不用数字的分类
把“几点关门”“晚上还能进去吗”“闭馆时间”写在一起,再给借期、续借各写一组不同问法,标上对应的 A、B、C。随后写一对主题接近却不能互换的资料,比如当前与历史借阅上限。
你是在人工模拟语义检索想做的事,并没有运行 Embedding 模型。先把“同一个意思”和“同一个答案”分清楚,再看数字就不容易被绕进去。
可以这样核对
普通开放时间找 A,首次借期找 B,续借找 C。B、E 都讲借阅数量,但问当前上限应依据 B,问历史变化则可能两份都要。意思接近不能消除版本差异。
继续阅读:Sentence Transformers: Quickstart
← 上一篇 · 学习计划 · 练习用的虚构图书馆资料 · 下一篇 →