HCIP-AI-MindSpore Developer V1.0 第五章笔记
一、自然语言处理原理简介
1.1 什么是自然语言处理?
自然语言处理(Natural Language Processing, NLP),就是让机器 **“听得懂、说得出、读得懂、写得好” 人类语言 ** 的技术 —— 本质是搭建一座 “人类语言” 和 “机器语言” 之间的桥梁。
我们可以从三个维度来理解它:
目标:让机器像人一样理解、生成、交互人类语言(比如中文、英文、方言)。
本质:把人类的自然语言(模糊、多义、依赖语境),转换成机器能处理的结构化数据(数字、向量、标签);再把机器的输出,转换成人类能听懂的自然语言。
定位:AI 领域的核心分支之一,和计算机视觉(CV)并称 “AI 的双眼和嘴巴”——CV 让机器 “看见世界”,NLP 让机器 “听懂世界、表达世界”。
1.2 自然语言 vs 机器语言:为什么 NLP 这么难?
和计算机能直接理解的机器语言(0 和 1)、编程语言(Python/Java)相比,自然语言有三个 “天生的麻烦”,这也是 NLP 比 CV 更难的核心原因:
1.2.1 模糊性与多义性
同一个词、同一句话,在不同语境下意思完全不同:
一词多义:比如 “打”——“打球” 是运动,“打电话” 是通信,“打酱油” 是路过,“打架” 是冲突。
一义多词:比如 “好看”—— 可以说 “漂亮”“美丽”“养眼”“绝绝子”,表达同一个意思。
歧义句:比如 “我看见他了”—— 可以是 “我看见了他(这个人)”,也可以是 “我看见(他做了某件事)”。
类比:就像同一个汉字 “行”,既可以读 xíng(行走),也可以读 háng(银行),机器很难直接判断。
1.2.2 语境与上下文依赖
自然语言的意思,必须放在上下文里才能懂:
指代问题:“小明把杯子摔碎了,因为它太烫了”——“它” 指的是杯子,不是小明。
省略问题:“你吃饭了吗?”“吃了”—— 省略了 “我” 和 “饭”,机器要能补全。
语气问题:“今天真热啊”—— 可以是抱怨,也可以是感叹,语气不同意思完全不同。
类比:就像你看小说,只看一句话根本不知道在说什么,必须结合前后文才能理解。
1.2.3 开放性与创造性
人类语言是活的,一直在变化:
新词不断出现:比如 “元宇宙”“AI 大模型”“搭子”“显眼包”,这些新词以前根本没有。
表达方式灵活:同样的意思,可以用不同的句式、语气、方言表达。
创造性强:人类会写诗歌、小说、段子,这些都是创造性的语言,机器很难模仿。
类比:就像你永远猜不到下一个网络热词是什么,机器也需要不断学习才能跟上。
1.3 NLP 的发展历程:从 “规则” 到 “大模型”
NLP 的发展,本质是从 “人工教机器” 到 “机器自己学” 的演进,一共分四个阶段:
1.3.1 规则时代(1950s-1990s)
核心逻辑:人工写规则,比如 “如果句子里有‘不’‘没’,就是否定句”;“‘我’后面接‘吃饭’,就是主谓结构”。
代表技术:早期机器翻译、专家系统。
局限:只能处理固定场景,稍微变一下就懵了 —— 比如你写了 “我没吃饭”,机器能识别;但你写 “我一口饭都没吃”,机器就识别不了了。
类比:就像你背好台词和人聊天,只能按台词说,不能自由发挥。
1.3.2 统计时代(2000s-2010s)
核心逻辑:用大量文本数据,统计语言的规律 —— 比如 “‘我’后面接‘吃饭’的概率,比接‘饭吃’的概率高”;“‘苹果’在‘水果’类文本里出现的次数更多”。
代表技术:n-gram、TF-IDF、HMM(隐马尔可夫模型)、SVM(支持向量机)。
局限:需要人工提取特征(比如 TF-IDF),无法捕捉长距离依赖,复杂句子处理不好。
类比:就像你学英语,背了很多单词和语法,能说简单句子,但复杂句子就会说错。
1.3.3 深度学习时代(2012s-2018s)
核心逻辑:用神经网络自动提取语言特征,不需要人工设计 —— 比如 RNN/LSTM 能处理序列,CNN 能提取局部特征,Transformer 能捕捉长距离依赖。
代表技术:Word2Vec(词嵌入)、Seq2Seq(序列到序列)、CNN/RNN/LSTM、Transformer。
突破:效果大幅提升,能处理复杂句子、长文本,机器翻译、情感分析等任务接近人类水平。
类比:就像你上了大学,读了很多英文文章,能自由和外国人聊天,处理复杂句子。
1.3.4 大模型时代(2019s - 至今)
核心逻辑:在海量文本上预训练大模型(比如 BERT/GPT),学到通用语言能力,再通过微调 / 提示学习适配具体任务。
代表技术:BERT(理解类)、GPT(生成类)、T5(通用)、文心一言、ChatGPT。
突破:具备通用语言能力,能聊天、写作、翻译、代码、推理,几乎能搞定所有 NLP 任务,甚至能处理多模态(图文音视频)。
类比:就像你成了语言大师,能和任何人聊任何话题,还能写各种类型的文章。
1.4 NLP 的核心任务分类
NLP 的任务可以分成两大类:理解类任务和生成类任务—— 就像人类的 “听 / 读” 和 “说 / 写”。
1.4.1 理解类任务(输入文本 → 输出标签 / 数值)
目标:读懂文本的意思,提取关键信息:
文本分类:给文本打标签(比如 “这是新闻 / 娱乐 / 体育”“这是正面 / 负面评价”)。
情感分析:判断文本的情感倾向(比如 “开心 / 生气 / 难过 / 中性”)。
命名实体识别(NER):从文本中找出实体(比如人名、地名、机构名、时间、金额)。
关系抽取:找出实体之间的关系(比如 “乔布斯是苹果公司的创始人”)。
意图识别:判断用户的意图(比如 “订机票”“查天气”“问问题”)。
问答系统(QA):根据问题,从文本 / 知识库中找出答案。
机器阅读理解(MRC):给一篇文章和一个问题,从文章中找出答案。
1.4.2 生成类任务(输入文本 → 输出新文本)
目标:根据输入,生成新的自然语言文本:
机器翻译(MT):把一种语言翻译成另一种(比如中→英、英→日)。
文本摘要:把长文本压缩成短摘要,保留核心信息。
文本生成:根据提示,生成新文本(比如写作文、写小说、写邮件、写代码)。
对话系统:和用户自由聊天(比如智能客服、语音助手、聊天机器人)。
风格迁移:把文本转换成另一种风格(比如文言文→白话文、正式邮件→口语化聊天)。
二、自然语言处理关键技术
2.1 文本表示:把文字变成机器能懂的数字
机器不能直接处理文字,必须把文字转换成数字 / 向量—— 这就是文本表示,是 NLP 的基础。
2.1.1 传统文本表示
- One-hot 编码:给每个词分配一个唯一的编号,比如 “我”→[1,0,0],“爱”→[0,1,0],“中国”→[0,0,1]。
- 缺点:维度太高(10000 个词就是 10000 维),没有语义信息(“我” 和 “我们” 的向量完全不同)。
- 词袋模型(BoW):把文本看成 “词的集合”,统计每个词出现的次数,比如 “我爱吃苹果,苹果很好吃”→我:1,爱:1,吃:2,苹果:2。
- 缺点:忽略语序(“我吃饭” 和 “饭吃我” 的词袋一样),没有语义信息。
- TF-IDF:在词袋模型基础上,给每个词加权 ——“在当前文本中出现次数多,但在所有文本中出现次数少” 的词权重更高。
- 优点:能突出关键词;缺点:还是忽略语序,没有语义信息。
2.1.2 词嵌入(Word Embedding)
词嵌入是 NLP 的里程碑突破,核心是把每个词转成一个低维向量(比如 50/100/300 维),语义相近的词,向量也相近:
例子:“猫” 和 “狗” 的向量很接近,“苹果” 和 “香蕉” 的向量很接近,“猫” 和 “苹果” 的向量很远。
经典模型:Word2Vec、GloVe、FastText。
神奇特性:比如 “国王” - “男人” + “女人” ≈ “女王”,能捕捉到语义关系。
类比:就像给每个词做 “指纹识别”,语义相近的词,指纹也相近。
2.1.3 上下文感知表示(大模型时代)
大模型时代的文本表示,不再是 “一个词对应一个向量”,而是同一个词在不同语境下,向量也不同—— 解决了多义性问题:
例子:“打” 在 “打球” 和 “打电话” 里,向量完全不同,机器能区分不同意思。
代表技术:BERT/GPT 等大模型的输出,能捕捉上下文信息。
2.2 核心模型:从 RNN 到 Transformer
NLP 的模型,本质是处理序列数据(文字是按顺序排列的),经历了三次关键突破:
2.2.1 RNN/LSTM:处理序列的早期方案
RNN(循环神经网络):按顺序处理文本,每个时刻的输出依赖之前的所有输入 —— 比如处理 “我昨天去了北京,那里的长城真壮观”,能记住 “那里” 指代 “北京”。
LSTM(长短期记忆网络):解决 RNN 的梯度消失问题,能捕捉更长距离的依赖 —— 比如处理 “我小时候去过北京,现在还记得那里的长城”,能记住 “那里” 指代 “北京”。
局限:只能按顺序处理,速度慢,长文本处理效果还是不好。
2.2.2 CNN:提取局部特征
核心逻辑:用不同大小的卷积核(比如 2/3/4),提取局部特征(比如 n-gram),比如 “我爱中国” 的 3-gram 特征 “我爱中”“爱中国”。
优点:速度快,能并行计算;缺点:无法捕捉长距离依赖。
适用场景:文本分类、情感分析等局部特征明显的任务。
2.2.3 Transformer:NLP 的革命
Transformer 是 2017 年 Google 提出的,完全抛弃 RNN/LSTM,用自注意力机制(Self-Attention)捕捉序列依赖,是现在所有大模型的基础:
自注意力机制:让每个词都能和所有词 “对话”,重点关注和当前词相关的部分 —— 比如处理 “那里” 时,自动把注意力集中在 “北京” 上。
多头注意力:用多个注意力头,捕捉不同类型的语义关系(比如指代、因果、并列)。
位置编码:给每个词加上位置信息,让模型知道词的顺序。
优势:并行计算(速度快)、能捕捉任意长度的依赖(长文本处理好)、通用性强(能处理所有 NLP 任务)。
2.3 预训练大模型:NLP 的 “通用大脑”
预训练大模型是现在 NLP 的核心,本质是 **“先上大学学通用知识,再工作中学专业技能”**:
2.3.1 预训练(Pre-training)
在海量无标注文本上训练模型,学到通用语言能力:
BERT 预训练任务:Masked Language Model(盖住 15% 的词,让模型预测被盖住的词)、Next Sentence Prediction(判断两个句子是否连续)。
GPT 预训练任务:Causal Language Model(给前面的词,让模型预测下一个词)。
优势:学到了语言的语法、语义、常识,具备通用理解 / 生成能力。
2.3.2 微调(Fine-tuning)
在具体任务的标注数据上,稍微调整模型参数,让模型适应具体任务:
例子:用 BERT 预训练后,在情感分析数据上微调,就能判断文本是正面还是负面。
优势:只需要少量标注数据,就能取得很好的效果,大大降低标注成本。
2.3.3 提示学习(Prompt Learning)
不用微调模型,直接给模型一个 “提示”(Prompt),让模型完成任务:
例子:情感分析提示 “判断下面这句话的情感:这个手机续航太差了。情感:”→模型输出 “负面”。
优势:零样本 / 少样本就能完成任务,不需要标注数据,大大降低使用门槛。
2.3.4 指令微调(Instruction Tuning)
用 “指令 + 输出” 的数据微调,让模型能听懂人类的指令:
例子:指令 “写一篇关于春天的作文”→输出作文;指令 “帮我订明天去北京的高铁票”→输出订票结果。
优势:让模型能和人类自然交互,具备 “通用助手” 的能力(比如 ChatGPT、文心一言)。
三、自然语言处理应用系统
NLP 已经从实验室走进了各行各业,下面是最常见的应用系统:
3.1 智能客服系统
核心流程:用户提问 → 意图识别 → 知识库匹配 → 答案生成 → 回复用户。
功能:自动回复用户的问题(比如 “查订单”“退货”“咨询产品”),复杂问题转人工。
优势:7×24 小时在线,响应时间 <1 秒,能处理 80% 的常见问题,节省 70% 的人工客服成本。
例子:电商客服、银行客服、运营商客服。
3.2 机器翻译系统
核心流程:源语言文本 → 编码 → 解码 → 目标语言文本。
功能:把一种语言翻译成另一种(比如中→英、英→日、中→日)。
优势:实时翻译,支持 99 种语言,效果接近人类水平,方便跨语言沟通。
例子:谷歌翻译、百度翻译、DeepL。
3.3 文本生成系统
核心流程:输入提示 → 模型生成 → 后处理 → 输出文本。
功能:自动生成各种类型的文本(作文、小说、邮件、代码、文案、新闻)。
优势:提升创作效率,比如写一篇作文只需要几秒钟,写代码能自动补全。
例子:ChatGPT、文心一言、Notion AI。
3.4 问答系统
核心流程:问题 → 意图识别 → 信息检索 → 答案抽取 / 生成 → 回复用户。
功能:根据问题,从文本 / 知识库中找出答案(比如 “中国的首都是哪里?”→“北京”)。
优势:快速获取信息,比如智能助手、搜索引擎。
例子: Siri、小爱同学、百度知道。
3.5 对话系统
核心流程:用户输入 → 自然语言理解 → 对话管理 → 自然语言生成 → 回复用户。
功能:和用户自由聊天,比如智能客服、语音助手、虚拟主播。
优势:自然交互,比如你对手机说 “小艺小艺,明天早上 8 点叫我起床”,手机能听懂并设置闹钟。
例子:智能音箱、车载语音助手、虚拟主播。
3.6 内容审核系统
核心流程:文本 → 特征提取 → 分类 / 识别 → 审核结果 → 处理。
功能:自动识别违规内容(色情、暴力、政治敏感、广告、垃圾信息)。
优势:7×24 小时在线,准确率 99%,能处理海量内容,节省大量人工审核成本。
例子:社交平台、电商平台、新闻平台的内容审核。
四、基于 MindSpore 的自然语言处理实践
4.1 MindSpore NLP 生态:底层支撑
MindSpore 为 NLP 提供了完整的工具链,让开发者不用从零造轮子:
4.1.1 昇腾芯片的算力底座
MindSpore 深度适配华为昇腾(Ascend)芯片:
达芬奇架构:专门为矩阵乘法、注意力机制优化,这正是 NLP 最核心的计算。
AI Core:能极速执行 Transformer 算子,训练大模型速度比同级别 GPU 快 20%~50%。
4.1.2 MindSpore NLP 工具链
MindSpore Dataset:处理文本数据,支持分词、数据增强、词嵌入等预处理操作。
MindSpore NLP:内置了 BERT、GPT、T5 等经典大模型,直接加载就能用,不需要自己从零搭建网络。
MindSpore Serving:把训练好的模型封装成 REST/gRPC 接口,方便部署成在线服务。
MindSpore Lite:把模型压缩到手机 / 边缘设备,实现离线 NLP(比如离线语音助手、离线翻译)。
4.2 基于 MindSpore 的 NLP 实践流程
不管是理解类任务还是生成类任务,MindSpore 的实践流程都一样:
4.2.1 数据准备与预处理
- 收集数据集:比如情感分析用 IMDB 数据集,文本分类用 THUCNews 数据集。
- 数据清洗:去掉噪音(比如特殊字符、空格、重复文本)。
- 分词:把文本切成词 / 字(比如中文分词 “我爱吃苹果”→“我 / 爱 / 吃 / 苹果”)。
- 数据增强:同义词替换、随机删除、回译(比如把中文翻译成英文再翻译回中文),增加数据多样性。
- 文本表示:把词转成词嵌入 / 大模型向量。
4.2.2 模型搭建
理解类任务:用 BERT 等 Encoder-only 模型,比如文本分类、情感分析、NER。
生成类任务:用 GPT 等 Decoder-only 模型,比如文本生成、机器翻译、对话系统。
MindSpore 优势:内置了现成模型,只需要修改输出层,就能适配自己的任务。
4.2.3 模型训练与监控
- 损失函数:理解类任务用交叉熵损失,生成类任务用交叉熵损失 / MSE。
- 优化器:用 Adam/Momentum/SGD,更新模型参数。
- 训练监控:监控 loss(越小越好)和准确率 / 困惑度(Perplexity,越小越好),确保模型收敛。
4.2.4 模型评估与部署
- 评估:用测试集评估模型效果(比如准确率、F1 值、BLEU 值)。
- 部署:
- 云侧部署:用 MindSpore Serving 封装成 API,部署到云端服务器,支持高并发。
- 端侧部署:用 MindSpore Lite 压缩模型,部署到手机 / 边缘设备,实现离线 NLP。
4.3 MindSpore NLP 实践优势
开箱即用:内置了经典大模型,不需要自己从零搭网络,新手也能快速上手。
高效训练:昇腾芯片加速,训练大模型速度更快,成本更低。
全场景部署:一套代码能部署到云、边、端,不需要修改业务逻辑。
兼容性强:支持 PyTorch/TensorFlow 模型迁移,保护已有投资。
第五章核心知识点总结
- NLP 本质:让机器 “听得懂、说得出、读得懂、写得好” 人类语言,核心是解决自然语言的模糊性、语境依赖、开放性问题。
- 发展历程:规则时代 → 统计时代 → 深度学习时代 → 大模型时代,从 “人工教” 到 “机器自己学”。
- 核心技术:
- 文本表示:从 One-hot/TF-IDF 到词嵌入,再到上下文感知表示,解决 “文字转数字” 的问题。
- 核心模型:从 RNN/LSTM/CNN 到 Transformer,解决 “序列处理” 的问题,Transformer 是现在的主流。
- 预训练大模型:预训练 + 微调 / 提示学习 / 指令微调,具备通用语言能力,是现在 NLP 的核心。
- 应用系统:智能客服、机器翻译、文本生成、问答系统、对话系统、内容审核,覆盖各行各业。
- MindSpore 实践:完整的 NLP 工具链,内置大模型,昇腾加速,全场景部署,新手也能快速做 NLP 应用。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐

所有评论(0)