一、自然语言处理¶
总根:NLP(Natural Language Processing)自然语言处理 所有和文本、人类语言打交道的技术都归 NLP,是最大范畴。 第一层拆分:NLP 两大分支 底层语言处理:分词、词性标注、句法分析、语音转文字 ASR 等; 上层语义与对话应用:NLU、NLI、DM、NLG 都在这里。
早年基于 NLU 的生成式对话机器人(2020 年前) 整体架构是流水线拆分,典型结构: NLU 自然语言理解:意图识别(一般需要包含模型置信度)、实体抽取、语义槽填充; DM 对话管理:维护对话状态、多轮逻辑、业务规则; NLG 自然语言生成:模板生成 / 小模型生成回复。
NLI(Natural Language Inference):单一、固定、标准化子任务输入固定格式:premise + hypothesis 两句对输出固定三分类:蕴含 / 矛盾 / 中立
举例¶
举车载多轮对话完整链路,直观区分归属:
- 用户第一轮:导航去坪山公园 NLU:意图 = 导航,目的地槽 = 坪山公园 → 传给 DMDM:状态记录「目的地:坪山公园,未确认」,下发 NLG 播报路线
-
用户第二轮:我不去这,换去深圳北站
-
DM 拿到新语句,先丢给 NLU;
- NLU 内部调用 NLI 推理: 前提:目的地是坪山公园;假设:用户放弃坪山,更换北站NLI 判断:前后意图矛盾,旧槽值失效;
- NLU 把推理结论(替换目的地、清空原有地点槽)返回 DM;
- DM 根据 NLU 输出更新对话状态,执行重新规划路线策略。
二、传统流水线 NLU 全环节拆分表¶
区分两类内容:
- 核心算法:数学 / 模型原理,无绑定编程语言
- Python 开源组件:落地实现工具库,用来运行上述算法 流水线链路:文本预处理分词 → 词表 / 词典构建 → 特征提取 → 意图分类 → 槽位抽取
2.1 环节 1:分词、文本预处理清洗¶
2.1.1 核心算法¶
- 正则文本清洗算法(字符过滤、去符号、标准化)
- 最大正向 / 逆向匹配分词算法
- N 元切分 n-gram(unigram/bigram/trigram)
- 词性标注 POS、依存句法分析算法
2.1.2 Python 开源组件¶
- NLTK:word_tokenize 分词、停用词过滤、词性标注
- spaCy:内置工业级分词器、分句、POS、依存句法
- jieba:中文场景精准分词、自定义领域词典加载
- re 标准库:正则清洗文本
2.2 环节 2:词表、业务词典构建与实体匹配¶
2.2.1 核心算法¶
- 词频统计统计算法(频次排序、高频词筛选)
- 模糊字符串匹配、前缀词典匹配算法
- 词汇哈希映射算法(词 - id 双向映射)
- 停用词过滤黑名单匹配逻辑
2.2.2 Python 开源组件¶
- collections.Counter:词频统计
- jieba 自定义词典加载接口
- spaCy PhraseMatcher:实体短语词典匹配
- json / 文件读写库:加载车载领域词表、POI 实体库
2.3 环节 3:特征提取(13.2 轻量化优化集中环节)¶
2.3.1 核心算法¶
- BoW 词袋模型
- TF-IDF 权重计算算法
- Word2Vec / GloVe 词向量训练算法
- 句向量均值池化算法
- LSA、PCA 特征降维算法
- 近似最近邻检索 ANN(Annoy/FAISS 底层索引算法)
- 稀疏矩阵存储压缩算法
2.3.2 Python 开源组件¶
- scikit-learn:CountVectorizer、TfidfVectorizer、PCA、LSA
- gensim:Word2Vec、GloVe 训练、批量文本流式加载
- FAISS、Annoy:向量检索加速
- scipy.sparse:稀疏矩阵存储,解决内存占用(13.2 轻量化)
2.4 环节 4:意图分类(文本分类任务)¶
2.4.1 核心算法¶
- 朴素贝叶斯 MultinomialNB
- 逻辑回归 Logistic Regression
- SVM 支持向量机
- 浅层 CNN 文本分类算法
- 全连接 DNN 文本分类
2.4.2 Python 开源组件¶
- scikit-learn:NB、LR、SVM 全套轻量分类器
- TensorFlow/PyTorch:搭建 CNN、DNN 深度分类模型
- spaCy 文本分类 Pipeline
2.5 环节 5:槽位 / 实体抽取(序列标注)¶
2.5.1 核心算法¶
- 规则词典实体匹配算法
- CRF 条件随机场序列标注算法
- BiLSTM + CRF 深度序列抽取算法
- 基于词性 / 句法的槽边界匹配逻辑
2.5.2 Python 开源组件¶
- sklearn-crfsuite:传统 CRF 训练推理
- PyTorch/TensorFlow:搭建 BiLSTM-CRF 网络
- spaCy NER 预训练实体抽取组件
- jieba + 自定义规则:轻量实体匹配
三、补充链路后置模块(不属于 NLU,仅做区分)¶
3.1 模块 A:DM 对话管理(调度层)¶
无专属 NLP 算法,为业务状态机逻辑组件:原生 Python 字典 / 类维护对话状态、槽位缓存
3.2 模块 B:NLG 回复生成(生成模块,非 NLU)¶
3.2.1 核心算法¶
- 模板填充字符串插值算法
- Seq2Seq 生成算法
- 大模型自回归文本生成算法
3.2.2 Python 开源组件¶
- Python str.format 模板填充
- Hugging Face Transformers:Seq2Seq、LLM 生成回复
四、与大模型的关系¶
车规安全、功能安全(ISO26262)硬性要求 车辆控制(空调、车窗、灯光、驾驶模式、门锁)属于安全相关指令,必须: 语义可校验、可回溯、可故障诊断; 输入输出强结构化,拒绝大模型自由发挥、歧义、幻觉; 具备确定性拒识逻辑:模糊话术、危险指令、越权操作直接拦截。
五、参考链接¶
莱恩 H, 霍华德 C, 哈普克 H M. 自然语言处理实战:利用 Python 理解、分析和生成文本 [M]. 史亮,鲁骁,唐可欣,等,译。北京:人民邮电出版社,2020.