一、 自然语言处理(NLP)核心认知
1. NLP 定义
自然语言处理(Natural Language Processing,NLP)是人工智能(AI)的核心分支之一,核心目标是让计算机能够理解、处理、生成人类的自然语言,实现人机之间的自然语言交互。
简单来说,NLP 架起了"人类语言"和"计算机语言"之间的桥梁------计算机本身只能识别 0/1 数字,而 NLP 就是让计算机读懂文字、听懂语音、甚至生成符合人类逻辑的语言。
2. NLP 发展简史
NLP 的技术演进遵循着一条清晰的路径:从早期的人工规则到如今的大模型驱动。
| 时间阶段 | 核心特征 | 关键技术/事件 |
|---|---|---|
| 1950 年 | 概念萌芽 | 图灵提出"机器能够思考吗?",图灵测试成为早期目标。 |
| 1957-1970 年 | 两大阵营形成 | 规则派 (依赖人工编写语法规则)与统计派(依赖语料库统计规律)首次对立。 |
| 1994-1999 年 | 统计方法主导 | 基于统计的机器学习算法(如隐马尔可夫模型 HMM)成为主流。 |
| 2000-2008 年 | 机器学习引领 | SVM、最大熵模型等算法成熟,NLP 任务效果大幅提升。 |
| 2015-2023 年 | 深度学习革新 | 神经网络(CNN/RNN/Transformer)崛起,BERT、GPT 等预训练模型颠覆了传统范式。 |
| 2023 年至今 | 大模型时代 | 以 GPT-4 为代表的大语言模型(LLM)涌现,AIGC 成为核心应用方向。 |
3. NLP 典型应用场景
NLP 技术已深度融入我们的日常生活与工作中:
-
语音交互
- 语音识别:如手机语音输入法,将我们说的话转成文字。
- 语音合成:如地图导航语音播报,将文字转换成自然语音。
- 智能助手:如小爱同学、Siri,通过语音指令完成各种任务。
-
文本处理
- 机器翻译:如谷歌翻译、DeepL,实现多语言的实时互译。
- 情感分析:分析商品评论、社交媒体帖子的情感倾向(正面/负面/中性)。
- 文本摘要/关键词提取:自动生成长篇文章的核心摘要或关键信息。
-
检索与对话
- 搜索引擎:理解用户的搜索意图,返回最相关的结果。
- 智能推荐:根据用户行为和偏好推荐商品或内容。
- 智能客服/聊天机器人:7x24 小时在线,解答用户疑问。
二、 文本预处理:NLP 任务的基石
1. 文本预处理的核心作用
所有 NLP 任务都始于文本预处理。原始文本(如新闻、评论)是"非结构化"的,包含大量噪声,无法直接被模型使用。预处理的目的就是将这些原始文本清洗、转化为模型能够理解的"结构化数据"。
2. 文本处理的基本方法
(1) 分词:中文文本处理的核心步骤
-
分词的意义
词是表达语义的基本单元。英文单词之间有天然的空格分隔,而中文句子是连续的字符流。因此,必须先通过分词将句子切分成有意义的词语序列(例如,将"我爱北京天安门"切分为"我 / 爱 / 北京 / 天安门"),模型才能进行后续的理解和分析。
-
jieba 分词工具的三种模式
jieba(结巴分词)是 Python 中最流行、易用的中文分词库。
精确模式(默认)
- 特点:力求将句子最精确地切分,结果符合人类语言习惯,最常用。
- 示例效果 :"传智教育是一家上市公司" 会被切分为
['传智', '教育', '是', '一家', '上市公司']。
python
import jieba
# 待分词文本
content = "传智教育是一家上市公司,旗下有黑马程序员品牌。我是在黑马这里学习人工智能"
# 精确模式(cut_all=False 可省略)
result = jieba.lcut(content, cut_all=False)
print("精确模式分词结果:", result)
# 输出:['传智', '教育', '是', '一家', '上市公司', ',', '旗下', '有', '黑马', '程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工智能']
全模式
- 特点:将句子中所有可能成词的词语都扫描出来,速度快但会产生冗余,适合关键词提取等场景。
- 示例效果 :"上市公司" 可能会被额外切分出
'上市'和'公司'。
python
result = jieba.lcut(content, cut_all=True)
print("全模式分词结果:", result)
# 输出:['传', '智', '教育', '是', '一家', '上市', '上市公司', '公司', ',', '旗下', '下有', '黑马', '程序', '程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工', '人工智能', '智能']
搜索引擎模式
- 特点:在精确模式的基础上,对长词再次切分,以提高搜索时的召回率。
- 示例效果 :"人工智能" 可能会被额外切分出
'人工'和'智能'。
python
result = jieba.lcut_for_search(content)
print("搜索引擎模式分词结果:", result)
# 输出:['传智', '教育', '是', '一家', '上市', '公司', '上市公司', ',', '旗下', '有', '黑马', '程序', '程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工', '智能', '人工智能']
- jieba 高级用法:自定义词典
当遇到新词、专业术语或品牌名时(如"黑马程序员"),jieba默认可能会切错(如切成"黑马 / 程序员")。通过提供一个自定义词典文件,我们可以"教会"jieba正确地识别这些新词,从而显著提升分词准确率。
步骤 1:创建自定义词典文件 userdict.txt,格式为:词汇 词频(可选) 词性(可选)
python
黑马程序员 5 n
传智教育 6 n
人工智能 7 nz
学习 3
上市 3
步骤 2:加载词典并分词:
python
import jieba
sentence = "传智教育是一家上市公司,旗下有黑马程序员品牌。我是在黑马这里学习人工智能"
# 未加载自定义词典
result1 = jieba.lcut(sentence)
print("未加载词典:", result1)
# 加载自定义词典
jieba.load_userdict("./userdict.txt")
result2 = jieba.lcut(sentence)
print("加载词典后:", result2)
# 输出对比:
# 未加载:['传智', '教育', '是', '一家', '上市公司', ',', '旗下', '有', '黑马', '程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工智能']
# 加载后:['传智教育', '是', '一家', '上市公司', ',', '旗下', '有', '黑马程序员', '品牌', '。', '我', '是', '在', '黑马', '这里', '学习', '人工智能']
(2) 词性标注 (POS Tagging)
- 定义 :在分词的基础上,为每个词语标注其语法属性(如名词
n、动词v、形容词a等)。 - 作用:帮助模型更深入地理解句子的语法结构,是句法分析、信息抽取等高级任务的基础。
- 示例效果 :"我喜欢学习" 的标注结果可能是
我(r-代词)喜欢(v-动词)学习(v-动词)。
python
import jieba.posseg as pseg
content = "我喜欢学习人工智能"
# 词性标注(返回 pair 类型,包含词和词性)
result = pseg.lcut(content)
# 遍历输出词和词性
for word, flag in result:
print(f"{word} → {flag}")
# 输出:
# 我 → r(代词)
# 喜欢 → v(动词)
# 学习 → v(动词)
# 人工智能 → nz(专有名词)
(3) 命名实体识别 (NER)
- 定义 :从文本中识别并提取出具有特定意义的实体,主要包括:
- 人名(如"马云")
- 地名(如"杭州")
- 机构名(如"阿里巴巴")
- 时间、日期、货币等。
- 作用:是信息抽取、构建知识图谱、智能问答等应用的关键技术。
3. 文本张量的表示方法
模型只能处理数字,因此必须将分词后的文本转换为数值形式的向量或张量。
-
One-Hot 编码 (独热编码)
- 定义:一种最简单的表示方法。为词汇表中的每个词创建一个长向量,向量中只有一个位置是 1(代表当前词),其余全是 0。
- ✅ 优点:简单、直观。
- ❌ 缺点 :① 维度灾难 :当词汇量巨大时,向量维度极高且稀疏。② 语义鸿沟:无法表达词与词之间的语义相似性(例如,"苹果"和"香蕉"的向量是完全独立的)。
-
Word2Vec (词向量)
- 定义:一种经典的词嵌入技术,将每个词映射到一个低维(如100维)的稠密向量。
- 核心思想:"物以类聚,词以群分"。上下文相似的词,其对应的词向量在空间中的距离也更近。
- ✅ 优点:维度低,能有效捕捉词汇间的语义相似性。
- ❌ 缺点:是静态向量,无法解决"一词多义"问题(例如,"苹果"无论是作水果还是手机,其向量都相同)。
-
Word Embedding (动态词嵌入)
- 定义:深度学习时代的先进词向量技术,是 Word2Vec 的升级版。
- 核心特点 :上下文相关。同一个词在不同的语境下会生成不同的向量,从而有效解决了多义词问题。
- 应用:当前所有主流大语言模型(如 BERT、GPT)的核心基础。
三、 本日入门小结
- 理解了 NLP 的核心定义、发展脉络和广泛应用。
- 掌握了文本预处理是 NLP 任务的必要前置步骤。
- 熟悉了中文预处理的核心工具
jieba分词,包括其三种模式和自定义词典的用法。 - 了解了将文本数值化的三种主要方法:One-Hot、Word2Vec 和 Word Embedding,并清楚了它们的优缺点。
四、 后续学习方向
- 文本预处理进阶:学习去停用词、文本清洗、正则表达式等高级技巧。
- 词向量实战:尝试使用 Word2Vec 训练自己领域的词向量模型。
- 基础 NLP 任务:基于已学知识,动手实现简单的文本分类或情感分析项目。
五、参考资料
黑马程序员AI大模型NLP自然语言处理全套视频教程,从传统序列模型到基于Transformer的预训练模型,构建完整NLP知识体系与项目实战
感谢阅读!如果这篇文章对你有帮助,欢迎点赞、收藏并关注我,我们下期再见!