CodeRoadMap
路线图学习路径文章题库资源社区

浏览

首页路线图学习路径知识库题库文章资源社区我的学习
CodeRoadMap

中文编程学习导航:路线图、讲义与题库,进度可同步。

路线图学习路径文章题库社区

© 2026 CodeRoadMap

津ICP备2026012044号-1|coderoadmap@126.com
首页/AI 人工智能入门 · 微软 12 周课/自然语言处理

课程目录

  1. 01人工智能简介
  2. 02知识表示与专家系统
  3. 03神经网络简介
  4. 04神经网络入门:感知机
  5. 05使用感知器进行多类别分类
  6. 06神经网络简介:多层感知机
  7. 07使用我们自己的框架进行MNIST分类
  8. 08神经网络框架
  9. 09使用 PyTorch/TensorFlow 进行分类
  10. 10计算机视觉
  11. 11计算机视觉简介
  12. 12使用光流检测运动
  13. 13卷积神经网络
  14. 14宠物面部分类
  15. 15预训练网络与迁移学习
  16. 16使用迁移学习对牛津宠物进行分类
  17. 17自动编码器
  18. 18生成对抗网络
  19. 19目标检测
  20. 20使用好莱坞头部数据集进行头部检测
  21. 21分割
  22. 22人体分割
  23. 23自然语言处理
  24. 24将文本表示为张量
  25. 25嵌入
  26. 26语言建模
  27. 27训练 Skip-Gram 模型
  28. 28循环神经网络
  29. 29生成网络
  30. 30使用 RNN 进行词级文本生成
  31. 31注意机制与Transformer
  32. 32命名实体识别
  33. 33命名实体识别 (NER)
  34. 34预训练大型语言模型
  35. 35遗传算法
  36. 36深度强化学习
  37. 37other-deeprl-lab
  38. 38多智能体系统
  39. 39伦理与负责任的人工智能
  40. 40多模态网络
第 23 课1 小时

自然语言处理

在本节中,我们将重点使用神经网络处理与<strong>自然语言处理(NLP)</strong>相关的任务。我们希望计算机能够解决许多NLP问题:

课程内容

自然语言处理

自然语言处理任务概览草图

在本节中,我们将重点使用神经网络处理与自然语言处理(NLP)相关的任务。我们希望计算机能够解决许多NLP问题:

  • 文本分类是一个典型的关于文本序列的分类问题。例子包括将电子邮件消息分类为垃圾邮件或非垃圾邮件,或将文章分类为体育、商业、政治等。同时,在开发聊天机器人时,我们常常需要理解用户的意图——这时我们处理的是意图分类。意图分类中通常需要处理很多类别。 情感分析是一个典型的回归问题,我们需要给句子含义的正负程度赋予一个数值(情绪值)。情感分析的更高级版本是基于方面的情感分析(ABSA),我们不是对整个句子赋予情感,而是对句子的不同部分(方面)赋予情感,例如 这家餐厅,我喜欢它的菜肴,但氛围很糟糕*。 命名实体识别(NER)指的是从文本中提取特定实体的问题。例如,我们需要理解短语 我明天需要飞往巴黎 中,明天 指的是日期,巴黎* 是位置。
  • 关键词提取与NER类似,但我们需要自动提取对句子意义重要的词汇,而无需针对特定实体类型进行预训练。
  • 文本聚类在我们希望将相似句子归为一组时非常有用,例如,在技术支持对话中相似的请求。
  • 问答系统指模型回答具体问题的能力。模型输入一段文本和一个问题,需要在文本中找出包含问题答案的位置(或者有时直接生成答案文本)。 文本生成是模型生成新文本的能力。它可以被视为一个基于某个文本提示*预测下一个字母或单词的分类任务。先进的文本生成模型,如GPT-3,能够使用称为提示编程或提示工程的技术解决其他NLP任务如分类。
  • 文本摘要是一种技术,我们希望计算机“阅读”长文本并将其总结成几句话。
  • 机器翻译可以视为一种在一种语言上理解文本,在另一种语言上生成文本的结合。

最初,大多数NLP任务是用传统方法如文法来解决的。例如,在机器翻译中,解析器用于将初始句子转换为语法树,然后提取更高层次的语义结构来表示句子的含义,基于这个含义和目标语言的文法生成结果。如今,许多NLP任务更有效的解决方法是使用神经网络。

许多经典的NLP方法在自然语言处理工具包(NLTK) Python库中实现。网上有一本很棒的,介绍了如何使用NLTK解决不同的NLP任务。

NLTK书籍

在我们的课程中,我们将主要关注使用神经网络处理NLP,并在需要时使用NLTK。

我们已经学习过如何使用神经网络处理表格数据和图像。这些数据与文本的主要区别在于,文本是可变长度的序列,而图像的输入大小是预先已知的。虽然卷积网络可从输入数据中提取模式,但文本中的模式更为复杂。例如,否定词与主语之间可以隔开任意多个词(如 我不喜欢橙子,和 我不喜欢那些又大又好吃的彩色橙子),但仍然应被视为一个模式。因此,为了处理语言,我们需要引入新的神经网络类型,如循环网络和transformer。

安装库

如果你在本地Python环境中运行本课程,可能需要使用以下命令安装所有NLP所需的库:

对于PyTorch

pip install -r requirements-pytorch.txt

对于TensorFlow

pip install -r requirements-tf.txt

你可以在Microsoft Learn上尝试使用TensorFlow进行NLP

GPU 注意事项

本节中,在一些示例里我们将训练相当大型的模型。

  • 使用支持GPU的电脑:建议在支持GPU的计算机上运行笔记本,以减少使用大型模型时等待的时间。
  • GPU内存限制:使用GPU时,训练大型模型可能会导致GPU内存不足。
  • GPU内存消耗:训练时消耗的GPU内存量取决于多个因素,包括小批量大小。
  • 尽可能减小小批量大小:遇到GPU内存问题时,可以尝试通过减小代码中的小批量大小来解决。
  • TensorFlow GPU内存释放:较旧版本的TensorFlow在同一Python内核中训练多个模型时可能无法正确释放GPU内存。为有效管理GPU内存,你可以配置TensorFlow按需分配GPU内存。
  • 代码示例:要设置TensorFlow仅按需增长GPU内存分配,可在笔记本中加入以下代码:
physical_devices = tf.config.list_physical_devices('GPU') 
if len(physical_devices)>0:
    tf.config.experimental.set_memory_growth(physical_devices[0], True) 

如果你对从经典机器学习的角度学习NLP感兴趣,请访问这套课程

本节内容

本节我们将学习:

  • 将文本表示为张量
  • 词嵌入
  • 语言模型
  • 循环神经网络
  • 生成网络
  • Transformer

免责声明: 本文件由 AI 翻译服务 Co-op Translator 翻译完成。尽管我们力求准确,但请注意,自动翻译可能包含错误或不准确之处。原始语言版文件应视为权威来源。对于重要信息,建议使用专业人工翻译。我们对因使用本翻译而产生的任何误解或误释不承担责任。

← 上一课人体分割下一课 →将文本表示为张量