当文字遇见算法
第六课
郑思尧
上海交通大学 国际与公共事务学院
"All quantitative models of language are wrong, but some are useful."
Grimmer & Stewart, 2013
上节课我们已经看到了主题模型、词向量和智能体。
今天往回走一步:在任何模型开始之前,你都要先回答一个更基础的问题。
怎样把“文字”变成“可以计算的数据”,以及 BERT / LLM 为什么改写了这件事?
机器学习喜欢的是 X 矩阵。
现实世界给你的是 报告、评论、政策文本、聊天记录。
第六课讲的就是中间这层 接口工程,以及它在 BERT / LLM 时代如何被重写。
今天的核心句:AI 时代的关键,是选对表示、模型和上下文接口。
这意味着:文本分析不是简单地“识别单词”。
你还要决定 哪些上下文信息要保留,哪些可以丢掉。
经典例子:南京市长江大桥。
你到底该切成 南京市 / 长江大桥,还是别的东西?这个问题没有机器自己就能“天然知道”的答案。
把文字变成模型输入,不只是切词
而是在定义表示接口
文本的难点来自三件事:
歧义性、语境依赖性、中文的边界模糊性。
AI 模型虽然更强,但依然要先决定
模型读入的是字、词、子词,还是一段上下文。
这也是为什么 AI 时代更关心 tokenizer、embedding 和 context window。
例子:政府支持人工智能产业发展
只有先组织成单位,机器才能继续做稀疏表示、embedding、分类、检索或生成。
ca + n't?切分从来不是目的本身,它是在替下游模型定义输入接口。
| 原始字符串 | 切分方案 A | 切分方案 B | 含义变化 |
|---|---|---|---|
| 南京市长江大桥 | 南京市 / 长江大桥 | 南京 / 市长 / 江大桥 | 后者几乎把地名结构完全切坏了。 |
| 研究生命起源 | 研究 / 生命 / 起源 | 研究生 / 命 / 起源 | 同样的字串,可以变成完全不同的句法结构。 |
| 乒乓球拍卖完了 | 乒乓球拍 / 卖完了 | 乒乓球 / 拍卖完了 | 一个是“球拍卖完”,一个是“球被拍卖”。 |
关键点:中文分词不是把已经存在的边界“找出来”,而是在多个可能的切分里做选择。
jieba 并不是“真正理解”了长江大桥。
它只是依据词典和统计规律,挑出一条更像人类会使用的路径。
所以一旦新词很多、领域术语很多、文本风格变了,你就可能需要自定义词典或改策略。
你选择的粒度,决定了模型“看到”的语言单位是什么。
AI 时代更常见的做法:先保留 token,让模型自己学权重。
| 接口 | 更擅长 | 代价 |
|---|---|---|
| TF-IDF | 关键词、主题 | 不看顺序 |
| BERT | 语义相似、词义 | 更慢、更黑箱 |
| LLM + RAG | 问答、摘要、解释 | 更贵,也会幻觉 |
关键不是步骤多不多,而是 你的任务需要哪种表示能力。
在 BoW 里,这两句的词袋向量都是:
{人: 1, 咬: 1, 狗: 1}
也就是说,BoW 默认相信:“出现了什么词” 比 “词怎么排” 更重要。
“今年要扩大就业,稳定预期,支持民营经济发展,推动人工智能与制造业深度融合。”
| 词 | 计数 |
|---|---|
| 就业 | 1 |
| 民营经济 | 1 |
| 人工智能 | 1 |
| 发展 | 1 |
| 支持 | 1 |
一旦你完成这一步,文本就第一次变成了“表格里的行和列”。
词频高,但区分度低
未必最常见,但更有信息量
TF-IDF 在问一个简单问题:
这个词不仅在这篇文档里重要,而且相对其他文档也更能区分它吗?
| 文档 | 就业 | 人工智能 | 民营经济 | 社保 | 教育 |
|---|---|---|---|---|---|
| 政府工作报告 A | 4 | 2 | 3 | 0 | 1 |
| 政府工作报告 B | 1 | 0 | 1 | 3 | 2 |
| 地方政策新闻 | 0 | 4 | 0 | 0 | 1 |
行是文档,列是词。每个单元格是出现次数、TF-IDF 权重,或者别的数值表示。
从这一刻开始,文本分析正式接入机器学习的标准接口。
X 特征矩阵。
这就是为什么文本矩阵常常被称为 稀疏矩阵。
它解释了两个现实:
1. 文本特征工程会非常吃内存;
2. 维度控制、稀疏表示和降维技巧会很重要。
表示越强,通常越能保留语义;但解释性、成本和可控性也会一起变化。
传统词向量通常给“苹果”一个固定向量。
BERT 的关键跃迁是:同一个词在不同句子里,可以有不同的表示。
AI 时代,最先要问的不是“删哪些词”,而是:
模型的 tokenizer 怎样切、窗口能装多长、领域词会不会被拆坏。
tokenizer 的设计,直接影响表示质量和下游任务。
LLM 让文本处理更像系统设计。
真正的关键问题变成了:
怎么 chunk、怎么检索、怎么约束 prompt、怎么做评估与对照实验。
Grimmer & Stewart (2013), Text as Data.
真正会改变结果的,是 窗口切法、表示模型、检索策略和评估标准。
先判断任务、成本、标注条件,再选路线。
中文文本的机会,不只在于“数据多”;
而在于它能让 BERT / LLM 观察到 制度、话语、认知与治理 的细微变化。
真正要做好的,是领域适配、评估集和错误分析。
如果你要分析政府工作报告里的政策优先级变化:
1. 你会用 TF-IDF baseline、BERT embedding,还是 LLM + RAG?为什么?
2. 如果文本很长,你的 chunking 单位会是句子、段落,还是整篇?
3. 你会怎样验证“模型真的抓到了政策优先级”,而不是只抓到口号频率或生成幻觉?
4. 如果不同模型给出不同结论,你准备怎么比较、报告和解释?
从 BoW 到 BERT / LLM
关键是选对表示与系统接口
文本之所以难,不是因为它脏,
而是因为它本来就充满歧义、语境和选择。
在 AI 时代,真正重要的是:
选择合适的 tokenizer、embedding、模型、chunking 与评估方式。
传统稀疏表示仍然有用,但 BERT 与 LLM 已经把重心推进到
上下文建模、检索增强和系统级设计。
下节课我们继续:从 TF-IDF 到 BERT,机器怎样开始做分类与判断?
lecture07 预告:文本分类 — 从 TF-IDF 到 BERT