Deeplearning for NLP (简介)

本文源自17年牛津大学的NLP课程,介绍了深度学习如何应用于NLP任务,涵盖词的表示、文本分类、文本生成等。讨论了词典中的OOV问题,强调了词向量(如Word2vec)的重要性。还探讨了动态计算图和静态计算图在深度学习框架中的区别,推荐NLP初学者学习PyTorch。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开篇

过目就忘说的可能就是在下了,所以现在所有的学习内容我都会写成博客,不成博客的就是过目就忘啦。这是系列不算挖坑,前面写了几篇Tensorflow的文章,词向量这篇一直处于难产中,拖延症比较严重。争取这两天能够写出来。下面开始我们的正题,这篇博客的内容主要来源于17年牛津大学的NLP课程,这边放出课程oxford-cs-deepnlp的github地址和网易云课堂课程的视频链接,夸一下网易,很有担当的课程,算是给了我们这些听力一般的学生一条求学之路,虽然它拒了我加入申请。
下面开始我们的正题,简单说一下这门课程的主要内容,课程是以各种NLP任务为主要单元来呈现的,而我这篇博客主要来源于第二周的课程,希望能够大家一个轮廓,知道DeepLearning可以做哪些NLP任务,这些任务我后续都会TensorFlow去实现,这里不给自己挖坑了,不定期更新。本课程基本涵盖了大部分的热门NLP任务,对初入NLP领域的人有一个很好的引导作用,但是理论可能就不会太过深究,毕竟一节课也就两个小时,要把一个子领域的任务讲清楚已近相当难得了。我可能不太会去使用课程中的数据集去完成相应的任务,但是任务内容肯定是一致的。

Deeplearning for NLP

这部分主要过一下课程里面的基本任务,细节不多提。首先是词的表示,这是NLP所有任务的基础,这边贴出课程ppt上的内容,看看我们在实践中会遇到哪些问题,这些以后都会一一给出解决方案。

这边稍微提一下什么是oov,全称叫做out of vocabulary,就是字面上的意思,超出词典的单词,为什么会出现这样的情况呢,看过我之前博客的同学,会发现,我们在生成词典的时候是会考虑词频高的单词的,这样的话有些词频低的词我们就不会放入词典里面,这样做的原因是我们的计算资源确实有限,不可能覆盖到全部的单词,但是这样确实会给很多NLP任务带来很多的问题,举一个简单的例子,比如我们要做文本生成的任务,语料中有很多的人名,但是他们出现的频率很一般,我们没有考虑把他们放到词典里面,这样我们生成文本的时候去词典里面去搜索单词的时候就不会有,那样我们生成的文本就不会这些人名(文本的生成是依赖相应的词典构建的,后面我们会多次提到相应的问题)。
回到词的表示,现在最流行的就是使用下上文的一些语义来表示我们的词向量,也就是我们熟知的Word2vec。不多提,会有博客专门讲它的实现。

这边列出了常见的任务,包括文本分类,文本生成,相信你看完上图的分类会很清楚他们各自都是干什么的。

更加高级的就是文本理解,不幸我做的基本任务就是文本理解里面的,为自己默哀三分钟。

数据集

课程中的数据集,这里不多讲,大家看ppt里面的简介就知道了,很清楚

一个数据集就足以诠释课程中全部的任务

深度学习框架

这边就讲一下静态计算图和动态计算图的区别。

依据采用动态计算或是静态计算的不同,可以将这些众多的深度学习框架划分成两大阵营,当然也有些框架同时具有动态计算和静态计算两种机制(比如 MxNet 和最新的 TensorFlow)。动态计算意味着程序将按照我们编写命令的顺序进行执行。这种机制将使得调试更加容易,并且也使得我们将大脑中的想法转化为实际代码变得更加容易。而静态计算则意味着程序在编译执行时将先生成神经网络的结构,然后再执行相应操作。从理论上讲,静态计算这样的机制允许编译器进行更大程度的优化,但是这也意味着你所期望的程序与编译器实际执行之间存在着更多的代沟。这也意味着,代码中的错误将更加难以发现(比如,如果计算图的结构出现问题,你可能只有在代码执行到相应操作的时候才能发现它)。尽管理论上而言,静态计算图比动态计算图具有更好的性能,但是在实践中我们经常发现并不是这样的。

老实说动态计算图bug会更加容易调,比较适合nlp,同时代码也更加容易理解,但是无奈的是,我已经入坑tf,大家有机会还是去学习一下pytorch。

ps:学习是带有仪式感的活动,大家加油。

《深度学习入门指南》译本是为了帮助初学者更好地理解深度学习所设计的一本书籍。深度学习是一种复杂的机器学习技术,通过构建和训练多层神经网络来处理和理解大量数据。这本书的主要目的是将深度学习的概念和原理以简明易懂的方式表达出来,以帮助读者快速入门。 《深度学习入门指南》译本的内容涵盖了深度学习的基础知识、主要算法和应用案例。首先,它介绍了神经网络的基础概念,解释了输入、输出和隐藏层之间的关系。然后,它详细解释了常用的深度学习算法,如卷积神经网络和循环神经网络,以及它们在图像识别、自然语言处理和语音识别等领域的应用。 此外,《深度学习入门指南》译本还提供了实际的编程示例和操作步骤,帮助读者从零开始构建自己的深度学习模型。它解释了数据预处理、模型训练和评估的重要步骤,并引导读者如何使用流行的深度学习框架,如TensorFlow和PyTorch。 这本书注重实践与理论相结合,通过丰富的案例和练习,读者可以快速应用所学的知识解决实际问题。它力求用简单清晰的语言和图表解释复杂的概念,为读者提供了一个较为友好和易懂的学习环境。 总而言之,这本《深度学习入门指南》译本是一本为初学者设计的实用指南,它帮助读者了解深度学习的基本概念和应用,并提供了实际的编程示例,让读者能够迅速入门深度学习领域。无论是对于计算机科学学生、工程师还是对于对深度学习感兴趣的非专业读者都会有很大的帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值