查看全课大纲(第 1 / 69 节)
  1. 1.NLP 的研究领域、应用与学习路径
  2. 2.自然语言的基本术语
  3. 3.信息论基础:信息熵与交叉熵
  4. 4.语言的进化与语义变迁
  5. 5.主观概率、客观概率与条件概率
  6. 6.贝叶斯原理与推理
  7. 7.随机变量:二项式、期望方差与联合概率
  8. 8.常见概率分布
  9. 9.辛普森悖论与贝叶斯解题实例
  10. 10.语言模型:语言概率与词袋模型
  11. 11.n-gram 语言模型(二元 / 三元 / N-Gram)
  12. 12.语言模型评价:交叉熵、困惑度与插值
  13. 13.朴素贝叶斯文本分类:垃圾邮件
  14. 14.拼写检查
  15. 15.中文分词:构词法、最大匹配、最优路径与 Jieba
  16. 16.词表示问题与语义相似度
  17. 17.TF-IDF 权重处理
  18. 18.One-Hot 表达与词表示的局限
  19. 19.Word2Vec 核心思想
  20. 20.Word2Vec 训练过程
  21. 21.Skip-gram 模型详解
  22. 22.词性标注任务与标注方法(规则 + N-Gram)
  23. 23.EM 算法与混合模型
  24. 24.高斯混合模型 GMM
  25. 25.从混合模型到隐马尔可夫模型
  26. 26.隐马尔可夫模型(HMM)推导与维特比解码
  27. 27.线性链条件随机场 CRF
  28. 28.贝叶斯网络与图模型
  29. 29.隐马尔可夫链与 HMM 推导
  30. 30.PLSA 主题模型
  31. 31.LSI 与 SVD 向量表达
  32. 32.LDA 与狄利克雷分布
  33. 33.主题模型实验复现(困惑度 / 分类 / 相似度 / 延展)
  34. 34.上下文无关文法(CFG)与句法分析
  35. 35.概率上下文无关文法 PCFG
  36. 36.统计机器翻译:词对齐与翻译模型
  37. 37.统计机器翻译中的对齐模型与参数估计
  38. 38.从统计机器翻译到神经机器翻译
  39. 39.神经元与反向传播速览(指向深度学习课)
  40. 40.CNN 原理及其在 NLP 中的应用
  41. 41.循环神经网络的基本原理与 Elman / Jordan 网络
  42. 42.LSTM:长短期记忆网络的核心思想与分步实现
  43. 43.Encoder-Decoder 框架
  44. 44.Seq2Seq 与早期注意力机制
  45. 45.注意力机制的背景与动机
  46. 46.注意力模型实现原理与匹配函数
  47. 47.记忆网络:组成与计算
  48. 48.注意力机制的应用与历史延展
  49. 49.Transformer 结构:Encoder-Decoder 栈与 Self-Attention
  50. 50.Multi-Head Attention、FFNN 与位置编码
  51. 51.层归一化、损失函数与 Universal Transformer 延展
  52. 52.预训练范式:从 ELMo 到 BERT
  53. 53.BERT 与掩码语言模型
  54. 54.BERT 下游任务微调与 GLUE 口径
  55. 55.GPT 与自回归语言建模
  56. 56.GPT-1 到 GPT-4 的演进
  57. 57.指令微调与 RLHF
  58. 58.分词器:BPE、WordPiece 与中文词表
  59. 59.上下文窗口与长文本处理
  60. 60.能力边界、成本与适用场景
  61. 61.文本分类实战:从朴素贝叶斯到逻辑回归
  62. 62.命名实体识别实战
  63. 63.文本生成与摘要实战
  64. 64.语义检索与向量库实战
  65. 65.RAG 知识库问答
  66. 66.NLP 评估指标:BLEU / ROUGE / BERTScore 与人工评估
  67. 67.幻觉与事实性问题
  68. 68.文本与知识结合(知识图谱压缩)
  69. 69.跨媒体信息检索与未来展望

NLP 的研究领域、应用与学习路径

小象实战讲义 · 自然语言处理

欢迎来到《自然语言处理》课程的第一节。本节我们将开启一段探索语言与智能奥秘的旅程。对于已具备 Python 与机器学习基础的你,本节将为你勾勒出 NLP 的全景图:它是什么,为何重要,有哪些核心应用,以及我们将如何系统性地学习它。理解这些将为你后续深入语言模型、词表示、深度学习乃至大模型等具体技术打下坚实的基础。

💡 核心导读

本节你将了解到:

  • NLP 的定义与定位:理解自然语言处理(NLP)在人工智能(AI)版图中的核心地位,以及它与编程语言的区别。
  • NLP 的研究动机:从图灵测试到语言作为智能的体现,探讨我们为何要研究语言。
  • NLP 的应用与技术:概览从语音识别、机器翻译到情感分析等丰富的应用场景,以及支撑这些应用的核心技术栈。
  • 课程学习路径与要求:明确本课程的学习前提、推荐书目以及高效学习的方法论。

什么是自然语言处理?

自然语言处理,其英文全称为 Natural Language Processing,常缩写为 NLP。它是人工智能领域中最重要、最引人入胜的分支之一。

我们之所以强调“自然”语言,是为了与计算机科学中通常所指的“编程语言”(如 C、Java、Python)相区分。自然语言是人类在日常生活和交流中使用的语言,例如中文、英文等。它充满了歧义、多样性和复杂的结构,这使得用计算机处理和理解它成为一个极具挑战性又充满魅力的课题。

一个系统是否具有智能,语言能力是关键的衡量标准。经典的图灵测试正是基于此:如果人类评判者通过文本对话无法区分对方是机器还是人,那么这台机器就被认为通过了测试,展现了智能。这凸显了语言理解和生成在人工智能中的核心地位。

目前,NLP 的研究主要基于机器学习的方法。因此,要学好 NLP,你需要具备坚实的定量分析基础,包括线性代数、概率统计、优化理论,以及一定的机器学习背景。本课程将采用“机器学习方法”这一路径,系统性地讲解 NLP 的核心技术与模型。

NLP 的研究领域与应用

NLP 的研究旨在让计算机能够理解、解释和生成人类语言。这涵盖了从基础的语言单位处理到高级的语义理解等一系列任务。我们可以从“应用”和“核心技术”两个维度来认识 NLP 的广阔天地。

核心应用场景

NLP 技术已渗透到我们数字生活的方方面面,以下是一些典型的应用:

  • 机器翻译:将一种语言自动翻译成另一种语言,如将中文“我爱中国”翻译成英文“I love China”。
  • 信息检索与搜索:从海量文本中快速找到相关信息,如搜索引擎。
  • 问答系统:直接回答用户提出的自然语言问题。
  • 对话系统:与用户进行多轮、连贯的对话,如智能客服、聊天机器人。
  • 信息抽取:从非结构化文本中提取结构化信息,如从新闻中抽取事件、人物、地点。
  • 文本摘要:自动生成一段长文本的核心内容摘要。
  • 情感分析:判断一段文本所表达的情感倾向(正面、负面、中性)。
  • 实体识别:识别文本中具有特定意义的实体,如人名、地名、组织机构名、时间等。
  • 垃圾邮件过滤:基于邮件内容自动识别并过滤垃圾邮件。

这些应用背后,是一个完整的处理链条。例如,一个智能客服系统可能涉及:语音识别将用户语音转为文字 → NLP 核心模块理解问题并生成答案 → 语音合成将答案文本转为语音回复。其中,自动语音识别和文本转语音虽然与 NLP 紧密相关,但更偏向信号处理,本课程将不深入探讨,而专注于中间的文本理解与生成部分。

支撑性核心技术

上述丰富的应用依赖于一系列基础且通用的核心技术:

  • 语言建模:计算一个词序列出现的概率,是许多 NLP 任务的基础。
  • 分词:对于像中文这样没有显式空格分隔的语言,将连续字符序列切分成独立的词。
  • 词性标注:为句子中的每个词标注其词性(如名词、动词、形容词)。
  • 句法分析:分析句子的语法结构,建立词之间的句法关系(如主谓宾)。
  • 命名实体识别:即上文提到的实体识别,是信息抽取的关键步骤。
  • 词义消歧:根据上下文确定一个多义词在特定语境中的具体含义。
  • 语义角色标注:分析句子中谓词与其相关论元(如施事、受事、时间、地点)之间的关系。

技术是有限的,但通过将这些核心技术以不同方式组合和应用到各种场景中,便催生了层出不穷的 NLP 应用。同时,这些技术本身也在随着机器学习,尤其是深度学习的发展而不断演进。

课程学习路径与要求

本课程旨在为你构建一个从经典方法到现代前沿的完整 NLP 知识体系。

先修知识

为了能顺利跟进课程,希望你具备以下基础:

  • 数学:线性代数、概率论与数理统计、最优化基础。
  • 计算机科学:Python 编程、基本的数据结构知识。
  • 机器学习:对机器学习的基本概念(如模型、训练、评估)有了解。
  • 英语:课程提供的幻灯片、阅读材料和笔记均为英文,以帮助你接触第一手学术资料。

学习时间建议:对于每 3 小时的课程内容,建议你至少投入 6 小时进行课后复习、阅读和实践,方能扎实掌握。

推荐书目

以下书籍将为你提供深入和扩展的视角:

  1. 机器学习基础:
    • Pattern Recognition and Machine Learning, Christopher M. Bishop。经典的机器学习教材,提供了坚实的算法与理论支持。
    • 《机器学习》(“西瓜书”), 周志华。优秀的中文机器学习教材。
    • 《统计学习方法》, 李航。另一本经典的中文统计学习教材。
  2. 自然语言处理经典:
    • Foundations of Statistical Natural Language Processing, Christopher D. Manning 等。从统计视角系统介绍 NLP。
    • Speech and Language Processing, Daniel Jurafsky 等。内容全面的 NLP 教科书,覆盖语音和文本处理。
  3. 深度学习:
    • Deep Learning, Ian Goodfellow 等。深度学习领域的权威著作,有助于理解神经网络在 NLP 中的应用。

本课程的讲解将涵盖但不限于这些书籍中的部分内容,同时也会融入最新的研究进展和实践案例。课程大约有三分之一的篇幅将专注于使用深度学习方法处理 NLP 问题。

📝 动手练一练

  1. 概念辨析:自然语言处理与普通的“语言处理”有何本质区别?请列举一个自然语言处理的具体应用,并分析它可能涉及哪些上述提到的核心技术。
👉 点击查看参考答案

区别: “语言处理”在计算机领域通常指对编程语言的处理,如编译、解释。而“自然语言处理”特指对人类自然语言(如中文、英文)的处理,其核心挑战在于语言的歧义性、创造性和对上下文、世界知识的依赖。

应用与技术分析(以“社交媒体情感分析”为例):

  • 应用:自动分析用户在社交媒体上发布的文本(如产品评论)是正面、负面还是中性。
  • 可能涉及的核心技术:
    1. 分词(对于中文):将句子切分成词序列。
    2. 词性标注:辅助理解句子结构。
    3. 命名实体识别:识别产品名、品牌名等。
    4. 词表示:将词或文本映射为数值向量(如使用词向量)。
    5. 情感分析本身作为一个分类任务,会综合运用以上技术提取的特征,通过分类模型(如逻辑回归、神经网络)做出判断。
  1. 简单实践:请用 Python 编写一个极简的程序,模拟“词频统计”这一文本处理的基础步骤。给定一个英文句子,输出每个单词出现的次数(忽略大小写和标点)。
# 极简词频统计示例
import re

sentence = "Natural language processing is fun and natural language is powerful."
# 预处理:转为小写,并用正则只抽取字母序列,去除标点
words = re.findall(r"[a-z]+", sentence.lower())

word_freq = {}
for word in words:
    word_freq[word] = word_freq.get(word, 0) + 1

print("单词频率统计:")
for word, freq in sorted(word_freq.items()): # 按单词字母顺序排序输出
    print(f"  '{word}': {freq}")
单词频率统计:
  'and': 1
  'fun': 1
  'is': 2
  'language': 2
  'natural': 2
  'powerful': 1
  'processing': 1

注意:这是一个非常基础的示例,真实的分词(尤其是中文)和文本预处理(处理标点、停用词等)要复杂得多,后续课程会深入讲解。

本章小结

本节作为课程的导论,我们共同建立了对自然语言处理的整体认知:

  • NLP 是什么:它是 AI 的核心分支,致力于让计算机处理和理解人类自然语言。
  • 为何重要:语言是智能的关键体现,从图灵测试到当今的智能交互,NLP 都是实现机器智能的基石。
  • 有何应用:从机器翻译、智能客服到情感分析,NLP 应用已无处不在,它们由分词、句法分析、语言建模等核心技术所支撑。
  • 如何学习:你需要扎实的数学和机器学习基础,并遵循从经典统计方法到现代深度学习模型的系统学习路径。

📋 行动清单

在进入下一节具体技术之前,你可以:

  • 回顾你的知识储备:确认自己对线性代数、概率统计和 Python 编程的掌握程度,必要时进行复习。
  • 浏览一本推荐书目:选择《统计学习方法》或 Speech and Language Processing 的前言或第一章,感受一下 NLP 的知识体系。
  • 观察身边的 NLP:思考一下你今天使用的手机 App、网站或服务中,哪些功能可能用到了 NLP 技术。

—— 小象教研组