0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何开始使用PyTorch进行自然语言处理

智能计算芯世界 来源:Exxact官方博客 作者:Exxact博客 2022-07-07 10:01 次阅读

随着人工智能深度学习程序在未来几年的蓬勃发展,自然语言处理(NLP)将日益普及,而且必要性也与日俱增。PyTorch 自然语言处理是实现这些程序的不错选择。

在本文中,我们将解决一些刚开始潜心研究自然语言处理时可能遇到的浅显的问题,不过我们也会探讨更深层次的问题,并给出恰当的步骤,让你可以着手开发自己的 NLP 程序。

PyTorch 可以用于 NLP 吗?

首先,NLP 是一门应用科学。它是工程学的一个分支,融合了人工智能、计算语言学和计算机科学,旨在“理解”自然语言(即口语和书面语言)。

其次,NLP 并不是指机器学习或深度学习。相反,要教给这些人工智能程序如何处理自然语言,利用其他系统来处理输入到这些程序中的内容。

一些人工智能程序被称为 NLP 程序只是因为这样简单,但严格来说,情况并非如此。在经过适当的训练后,它们能够对语言进行理解,但有一个完全不同的系统和过程在帮助这些程序理解自然语言。

这就是为什么用 PyTorch 进行自然语言处理会很方便。PyTorch 基于 Python 构建,它的好处是有预先写好的代码(称为类),而且都是围绕 NLP 设计的。这使得整个过程对每个参与者来说都更简单快捷。

有了这些 PyTorch 类,再加上 PyTorch 可以使用的其他各种 Python 库,没有比它更适合自然语言处理的机器学习框架了。

如何开始学习自然语言处理?

使用 PyTorch 进行自然语言处理,你需要熟悉 Python 编程。一旦你熟悉了 Python,就会开始接触到大量其他可以用于各种深度学习项目的框架。不过,由于 PyTorch Tensors 的存在,用 PyTorch 进行自然语言处理成了最佳选择。

简单地说,tensors 允许你使用 GPU 进行计算,这可以大大提升使用 PyTorch 开发的 NLP 程序的速度和性能。这意味着你可以加快深度学习程序的训练速度,从而能够利用 NLP 实现自己所期望的结果。

如上所述,PyTorch 为 NLP 及相关程序提供了不同的类,以保证它们良好运转。我们将对其中的六个类及其使用场景进行分析,以便帮助你在一开始时做出正确的选择。

1. torch.nn.RNN

我们要看的前三个类都是多层类(multi-layer classes),这意味着它们可以表示双向递归神经网络。简单来说,它允许深度学习程序从过去的状态中学习,并随着计算继续运行和处理从新的 / 未来的状态中学习。这使得这些程序能够学习和处理自然语言输入,甚至理解更深层次的语言怪癖。

ee23ff2e-fd1f-11ec-ba43-dac502259ad0.png

torch.nn.RNN 多对多图

torch.nn.RNN 表示循环神经网络(Recurring Neural Network),从名字就能看出这个类能提供什么。这是 PyTorch 提供的最简单的循环神经网络类,刚开始进行自然语言处理时可以考虑用它。

2. torch.nn.LSTM

torch.nn.LSTM 也是一个多层 PyTorch 类。它具有 torch.nn.RNN 的所有优点,但具有长短期记忆(Long Short Term Memory)。从本质上讲,这意味着使用这个类的深度学习程序可以超越一对一的数据点连接,对整个数据序列进行处理。

在使用 PyTorch 进行自然语言处理时,torch.nn.LSTM 是一个比较常用的类,因为它不仅可以理解手写或打字输入数据,而且还可以识别语音和其他声音。

能够处理更复杂的数据序列,使该类成为希望充分利用自然语言处理潜力的程序的必要组件。

3. torch.nn.GRU

torch.nn.GRU 基于 RNN 和 LSTM 类构建,引入了门控循环单元(Gated Recurrent Units)。简而言之,这意味着 torch.nn.GRU 类程序有一个门控输出。也就是说,它们的功能与 torch.nn.LSTM 类似,但可以简单地忽略那些与其他预期结果或大多数数据集的结论不一致的数据集。

torch.nn.GRU 类程序也是一种使用 PyTorch 开始学习 NLP 的好方法,因为它们比较简单,但可以在比较短的时间内产生与 torch.nn.LSTM 类似的结果。不过,如果程序忽略了对其学习可能很重要的数据集,在没有密切监控的情况下,它们的准确性可能会降低。

4. torch.nn.RNNCell

接下来的三个类是前面三个类的简化版本,所以它们的功能都很接近,但优点不同。这些类都是单元级类(cell-level classes),基本上一次运行一个操作,而不是同时处理多个数据集或序列。

ee4ac4a6-fd1f-11ec-ba43-dac502259ad0.png

使用 PyTorch 进行自然语言处理的输出结果,该过程使用了分配给相应图片的单词。这种方式比较慢,但只要有足够的时间,结果会准确得多。RNNCell 程序仍然可以从过去和未来的状态中学习。

5. torch.nn.LSTMCell

torch.nn.LSTMCell 的功能与普通的 torch.nn.LSTM 类相似,能够处理数据集和序列,但不能同时处理多个。与 RNNCell 程序一样,这意味着它速度比较慢,强度较低,但它可以随着时间的推移提高精度

这些单元级类中的每一个都与它们的前身差别不大,但如果要对这些差异进行深入研究的话,将远远超出本文的范围。

6. torch.nn.GRUCell

用 PyTorch 进行自然语言处理时,最有趣的一个类是 torch.nn.GRUCell。它仍然具有门控输出的功能,这意味着它可以忽略离群数据集,同时仍然可以从过去和未来的操作中学习。

可以说,这个 PyTorch 类更受初学者欢迎,因为它潜力最大,达到最佳效果的要求又最低。

要确保程序得到适当的训练,主要的成本是时间和精力。

使用PyTorch 实现自然语言处理

关于如何开始使用 PyTorch 进行自然语言处理,还有很多东西需要介绍。在选择了适合自己的深度学习模型的 PyTorch 类后,还有一个重要的因素需要了解,那就是如何在模型中实现 NLP。

要想拥有一个经过充分优化的、可使用的自然语言处理深度学习模型,很明显,将单词编码到模型中大概是最重要的过程之一。使用 PyTorch 进行自然语言处理时需要某种单词编码方法。

有很多方法可以让模型处理单个字母,但创建 NLP 深度学习模型,关注的不是单个单词和字母,而是这些单词和短语的语义和语言学意义。下面是使用 PyTorch 实现 NLP 的三种基本的词嵌入模型:

简单单词编码:训练模型关注序列中每个单独的单词,让它们自己推导出相似性和差异性。这种方法最简单,但可能很难让模型准确理解或预测语义。

N-Gram 语言建模:该模型经过训练,在学习单词时会考虑到序列中的其他单词。也就是说,它们可以学习单词之间的关系以及在整个句子中的作用。

连续词袋(CBOW):这是 N-Gram 语言建模的扩展版本。经过训练的深度学习模型可以序列化每个单词之前和之后设定数量的单词,进而深入学习单词与周围单词的关系以及它们在序列中的作用。到目前为止,这是使用 PyTorch 进行自然语言处理最常用的方法。

选好了 PyTorch 类和词嵌入方法后,就可以开始在下一个深度学习项目中利用自然语言处理了!

自然语言处理是深度学习和人工智能领域最热门的话题之一,许多行业都在寻找利用这种深度学习模型的方法,以供内外部使用。

你是怎么想的?准备好用 PyTorch 解决自然语言处理的问题了吗?

审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1776

    文章

    43845

    浏览量

    230605
  • 自然语言处理

    关注

    1

    文章

    509

    浏览量

    13101
  • pytorch
    +关注

    关注

    2

    文章

    761

    浏览量

    12835

原文标题:如何入门PyTorch自然语言处理?

文章出处:【微信号:AI_Architect,微信公众号:智能计算芯世界】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    python自然语言

    最近,python自然语言是越来越火了,那么什么是自然语言自然语言(Natural Language )广纳了众多技术,对自然或人类语言
    发表于 05-02 13:50

    自然语言处理怎么最快入门?

    ),首先就是分词的问题,因为中文相对于英文,并不是空格分隔的,另外进行自然语言处理的相关实践,也不大可能直接一长段文本进行操作,所以分词还是首当其中的。分词的原理暂且不说(比如CRF、
    发表于 11-28 10:02

    【推荐体验】腾讯云自然语言处理

    `相信大家对NLP自然语言处理的技术都不陌生,它是计算机科学领域和AI领域中的一个分支,它与计算机和人类之间使用自然语言进行交互密切相关,而NLP的最终目标是使计算机能够像人类一样理解
    发表于 10-09 15:28

    自然语言处理的分词方法

    自然语言处理——75 自动分词基本算法
    发表于 03-19 11:46

    自然语言处理语言模型

    自然语言处理——53 语言模型(数据平滑)
    发表于 04-16 11:11

    自然语言处理的词性标注方法

    自然语言处理——78 词性标注方法
    发表于 04-21 11:38

    自然语言处理笔记

    自然语言处理笔记9-哈工大 关毅
    发表于 06-04 16:34

    自然语言处理——总结、习题

    自然语言处理——79 总结、习题
    发表于 06-19 11:22

    什么是自然语言处理

    什么是自然语言处理自然语言处理任务有哪些?自然语言处理的方法是什么?
    发表于 09-08 06:51

    RNN在自然语言处理中的应用

    。深度学习的兴起又让人们重新开始研究循环神经网络(Recurrent Neural Network),并在序列问题和自然语言处理等领域取得很大的成功。本文将从循环神经网络的基本结构出发,介绍RNN在
    发表于 11-28 11:41 5550次阅读
    RNN在<b class='flag-5'>自然语言</b><b class='flag-5'>处理</b>中的应用

    自然语言处理怎么最快入门_自然语言处理知识了解

    自然语言处理就是实现人机间自然语言通信,实现自然语言理解和自然语言生成是十分困难的,造成困难的根本原因是
    发表于 12-28 17:10 5127次阅读

    PyTorch教程16.4之自然语言推理和数据集

    电子发烧友网站提供《PyTorch教程16.4之自然语言推理和数据集.pdf》资料免费下载
    发表于 06-05 10:57 0次下载
    <b class='flag-5'>PyTorch</b>教程16.4之<b class='flag-5'>自然语言</b>推理和数据集

    PyTorch教程16.5之自然语言推理:使用注意力

    电子发烧友网站提供《PyTorch教程16.5之自然语言推理:使用注意力.pdf》资料免费下载
    发表于 06-05 10:49 0次下载
    <b class='flag-5'>PyTorch</b>教程16.5之<b class='flag-5'>自然语言</b>推理:使用注意力

    PyTorch教程16.7之自然语言推理:微调BERT

    电子发烧友网站提供《PyTorch教程16.7之自然语言推理:微调BERT.pdf》资料免费下载
    发表于 06-05 10:52 0次下载
    <b class='flag-5'>PyTorch</b>教程16.7之<b class='flag-5'>自然语言</b>推理:微调BERT

    自然语言处理的概念和应用 自然语言处理属于人工智能吗

      自然语言处理(Natural Language Processing)是一种人工智能技术,它是研究自然语言与计算机之间的交互和通信的一门学科。自然语言
    发表于 08-23 17:31 854次阅读