自然语言处理


文档摘要

自然语言处理 自然语言处理任务的涂鸦总结 在这一部分,我们将专注于使用神经网络来处理与自然语言处理(NLP)相关的任务。有许多NLP问题是我们希望计算机能够解决的: 文本分类是一种典型的文本序列分类问题。例如,将电子邮件消息分类为垃圾邮件或非垃圾邮件,或将文章分类为体育、商业、政治等。此外,在开发聊天机器人时,我们经常需要理解用户想要表达的内容——在这种情况下,我们处理的是意图分类。通常,在意图分类中我们需要处理多个类别。 情感分析是一种典型的回归问题,我们需要赋予一个数字(情感)来表示句子的正面或负面含义。情感分析的一个更高级版本是基于方面的情感分析(ABSA),在这种分析中,我们不是将情感归因于整个句子,而是将其归因于句子的不同部分(方面),例如:在这间餐厅里,我喜欢菜肴,但气氛很糟糕。

自然语言处理

自然语言处理任务的涂鸦总结

在这一部分,我们将专注于使用神经网络来处理与**自然语言处理(NLP)**相关的任务。有许多NLP问题是我们希望计算机能够解决的:

  • 文本分类是一种典型的文本序列分类问题。例如,将电子邮件消息分类为垃圾邮件或非垃圾邮件,或将文章分类为体育、商业、政治等。此外,在开发聊天机器人时,我们经常需要理解用户想要表达的内容——在这种情况下,我们处理的是意图分类。通常,在意图分类中我们需要处理多个类别。
  • 情感分析是一种典型的回归问题,我们需要赋予一个数字(情感)来表示句子的正面或负面含义。情感分析的一个更高级版本是基于方面的情感分析(ABSA),在这种分析中,我们不是将情感归因于整个句子,而是将其归因于句子的不同部分(方面),例如:在这间餐厅里,我喜欢菜肴,但气氛很糟糕
  • 命名实体识别(NER)是指从文本中提取某些实体的问题。例如,我们可能需要理解在短语 我明天要飞往巴黎 中,单词 明天 指的是日期,而 巴黎 是地点。
  • 关键词提取类似于NER,但我们需要自动提取对句子意义重要的单词,而无需为特定实体类型进行预训练。
  • 文本聚类可以在我们希望将相似句子分组在一起时发挥作用,例如技术支持对话中的相似请求。
  • 问答是指模型回答特定问题的能力。模型接收一段文本和一个问题作为输入,并需要提供包含答案的文本位置(或者有时生成答案文本)。
  • 文本生成是模型生成新文本的能力。可以将其视为根据某种“文本提示”预测下一个字母/单词的分类任务。高级文本生成模型,如GPT-3,能够通过称为提示编程提示工程的技术解决其他NLP任务,例如分类。
  • 文本摘要是一种技术,当我们希望计算机“阅读”长文本并用几句话概括它时。
  • 机器翻译可以看作是用一种语言理解文本,然后用另一种语言生成文本。

最初,大多数NLP任务是通过传统方法如语法来解决的。例如,在机器翻译中,解析器被用来将初始句子转换成句法树,然后提取高层的语义结构以表示句子的意义,最后根据这种意义和目标语言的语法生成结果。如今,许多NLP任务使用神经网络能更有效地解决。

许多经典的NLP方法在Natural Language Processing Toolkit (NLTK) Python库中实现。有一本很棒的NLTK书在网上可以找到,涵盖了如何使用NLTK解决不同的NLP任务。

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

我们已经学习了如何使用神经网络处理表格数据和图像数据。这些数据类型与文本的主要区别在于文本是长度可变的序列,而图像的数据输入大小是预先已知的。虽然卷积网络可以从输入数据中提取模式,但文本中的模式更为复杂。例如,我们可以有否定与主语分离的情况,对于许多词来说,这应该仍然被视为一种模式,比如 我不喜欢橙子我不喜欢那些大而多彩美味的橙子

因此,为了处理语言,我们需要引入新的神经网络类型,如循环网络变换器

安装库

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

对于PyTorch

pip install -r requirements-torch.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,访问这套课程

本节内容

在本节中,我们将学习:

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


作者与出处
原作者: microsoft
来源:microsoft
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: microsoft 转发
评论区 (0)
U