跳转至

一、自然语言处理

总根:NLP(Natural Language Processing)自然语言处理 所有和文本、人类语言打交道的技术都归 NLP,是最大范畴。 第一层拆分:NLP 两大分支 底层语言处理:分词、词性标注、句法分析、语音转文字 ASR 等; 上层语义与对话应用:NLU、NLI、DM、NLG 都在这里。

早年基于 NLU 的生成式对话机器人(2020 年前) 整体架构是流水线拆分,典型结构: NLU 自然语言理解:意图识别(一般需要包含模型置信度)、实体抽取、语义槽填充; DM 对话管理:维护对话状态、多轮逻辑、业务规则; NLG 自然语言生成:模板生成 / 小模型生成回复。

NLI(Natural Language Inference)​:单一、固定、标准化子任务输入固定格式:premise + hypothesis 两句对输出固定三分类:蕴含 / 矛盾 / 中立

举例

举车载多轮对话完整链路,直观区分归属:

  1. 用户第一轮:导航去坪山公园 NLU:意图 = 导航,目的地槽 = 坪山公园 → 传给 DMDM:状态记录「目的地:坪山公园,未确认」,下发 NLG 播报路线
  2. 用户第二轮:我不去这,换去深圳北站

  3. DM 拿到新语句,先丢给 NLU;

  4. NLU 内部调用 ​NLI 推理​: 前提:目的地是坪山公园;假设:用户放弃坪山,更换北站NLI 判断:前后意图矛盾,旧槽值失效;
  5. NLU 把推理结论(替换目的地、清空原有地点槽)返回 DM;
  6. DM 根据 NLU 输出更新对话状态,执行重新规划路线策略。

二、传统流水线 NLU 全环节拆分表

区分两类内容:

  1. 核心算法​:数学 / 模型原理,无绑定编程语言
  2. Python 开源组件​:落地实现工具库,用来运行上述算法 流水线链路:文本预处理分词 → 词表 / 词典构建 → 特征提取 → 意图分类 → 槽位抽取

2.1 环节 1:分词、文本预处理清洗

2.1.1 核心算法

  1. 正则文本清洗算法(字符过滤、去符号、标准化)
  2. 最大正向 / 逆向匹配分词算法
  3. N 元切分 n-gram(unigram/bigram/trigram)
  4. 词性标注 POS、依存句法分析算法

2.1.2 Python 开源组件

  1. NLTK:word_tokenize 分词、停用词过滤、词性标注
  2. spaCy:内置工业级分词器、分句、POS、依存句法
  3. jieba:中文场景精准分词、自定义领域词典加载
  4. re 标准库:正则清洗文本

2.2 环节 2:词表、业务词典构建与实体匹配

2.2.1 核心算法

  1. 词频统计统计算法(频次排序、高频词筛选)
  2. 模糊字符串匹配、前缀词典匹配算法
  3. 词汇哈希映射算法(词 - id 双向映射)
  4. 停用词过滤黑名单匹配逻辑

2.2.2 Python 开源组件

  1. collections.Counter:词频统计
  2. jieba 自定义词典加载接口
  3. spaCy PhraseMatcher:实体短语词典匹配
  4. json / 文件读写库:加载车载领域词表、POI 实体库

2.3 环节 3:特征提取(13.2 轻量化优化集中环节)

2.3.1 核心算法

  1. BoW 词袋模型
  2. TF-IDF 权重计算算法
  3. Word2Vec / GloVe 词向量训练算法
  4. 句向量均值池化算法
  5. LSA、PCA 特征降维算法
  6. 近似最近邻检索 ANN(Annoy/FAISS 底层索引算法)
  7. 稀疏矩阵存储压缩算法

2.3.2 Python 开源组件

  1. scikit-learn:CountVectorizer、TfidfVectorizer、PCA、LSA
  2. gensim:Word2Vec、GloVe 训练、批量文本流式加载
  3. FAISS、Annoy:向量检索加速
  4. scipy.sparse:稀疏矩阵存储,解决内存占用(13.2 轻量化)

2.4 环节 4:意图分类(文本分类任务)

2.4.1 核心算法

  1. 朴素贝叶斯 MultinomialNB
  2. 逻辑回归 Logistic Regression
  3. SVM 支持向量机
  4. 浅层 CNN 文本分类算法
  5. 全连接 DNN 文本分类

2.4.2 Python 开源组件

  1. scikit-learn:NB、LR、SVM 全套轻量分类器
  2. TensorFlow/PyTorch:搭建 CNN、DNN 深度分类模型
  3. spaCy 文本分类 Pipeline

2.5 环节 5:槽位 / 实体抽取(序列标注)

2.5.1 核心算法

  1. 规则词典实体匹配算法
  2. CRF 条件随机场序列标注算法
  3. BiLSTM + CRF 深度序列抽取算法
  4. 基于词性 / 句法的槽边界匹配逻辑

2.5.2 Python 开源组件

  1. sklearn-crfsuite:传统 CRF 训练推理
  2. PyTorch/TensorFlow:搭建 BiLSTM-CRF 网络
  3. spaCy NER 预训练实体抽取组件
  4. jieba + 自定义规则:轻量实体匹配

三、补充链路后置模块(不属于 NLU,仅做区分)

3.1 模块 A:DM 对话管理(调度层)

无专属 NLP 算法,为业务状态机逻辑组件:原生 Python 字典 / 类维护对话状态、槽位缓存

3.2 模块 B:NLG 回复生成(生成模块,非 NLU)

3.2.1 核心算法

  1. 模板填充字符串插值算法
  2. Seq2Seq 生成算法
  3. 大模型自回归文本生成算法

3.2.2 Python 开源组件

  1. Python str.format 模板填充
  2. Hugging Face Transformers:Seq2Seq、LLM 生成回复

四、与大模型的关系

车规安全、功能安全(ISO26262)硬性要求 车辆控制(空调、车窗、灯光、驾驶模式、门锁)属于安全相关指令,必须: 语义可校验、可回溯、可故障诊断; 输入输出强结构化,拒绝大模型自由发挥、歧义、幻觉; 具备确定性拒识逻辑:模糊话术、危险指令、越权操作直接拦截。

五、参考链接

莱恩 H, 霍华德 C, 哈普克 H M. 自然语言处理实战:利用 Python 理解、分析和生成文本 [M]. 史亮,鲁骁,唐可欣,等,译。北京:人民邮电出版社,2020.

菜鸟教程-NLP教程 公众号--磐创AI-Rasa架构介绍