其他分享
首页 > 其他分享> > NLP文本分类

NLP文本分类

作者:互联网

引言

其实最近挺纠结的,有一点点焦虑,因为自己一直都期望往自然语言处理的方向发展,梦想成为一名NLP算法工程师,也正是我喜欢的事,而不是为了生存而工作。我觉得这也是我这辈子为数不多的剩下的可以自己去追求自己喜欢的东西的机会了。然而现实很残酷,大部分的公司算法工程师一般都是名牌大学,硕士起招,如同一个跨不过的门槛,让人望而却步,即使我觉得可能这个方向以后的路并不如其他的唾手可得的路轻松,但我的心中却一直有一股信念让我义无反顾,不管怎样,梦还是要有的,万一实现了呢~

扯得有点远了hhh,回到文章,因为目前有在做涉及到文本分析(情感分析)的项目,也想为以后的相关项目做下知识储备,最近开始入坑Tensorflow的一些深度学习的NLP相关实践,同时学习了文本分类领域中基于深度学习的模型的一些应用知识(然而还是个菜鸟,半懂不懂的哈哈哈)。这里对相关知识进行了总结,巩固个人知识体系,同时分享给大家~

(提前声明:菜鸡观点,非大佬观点,欢迎纠正,也会不断修正的)

持续更新........

基于深度学习的文本分类

文本分类领域,目前主要可分为:

五大领域(当然也有一些其他细分领域,这里不进行讨论)。近几年随着深度学习在自然语言处理领域的应用,文本分类也进入了由深度学习模型所导引的第三个阶段,逐渐超越了基于传统机器学习的方法。


目前,学术界针对文本分类所提出的深度学习模型大致有150多种,根据结构可分为11大类:


阿巴阿巴,如果看不太懂也没关系,我也只认识比较经典的几个hhh,但是可以了解下做储备嘛,也许哪一天就接触到了呢~下面这张图是2013年至2020年发布的一些很经典的深度学习文本嵌入和分类模型。我们可以看到入门的word2vec在2013年就已经提出来了,还有当下比较热门的Tree-LSTM、BERT也是前几年提出来的,的确是更新很快啊emmmm...
image.png

如何选择合适的神经网络模型

我们在针对文本分类任务选择最佳的神经网络结构时,常常会很迷茫,像我这种菜鸟就是百度下哪个模型社区比较火就用大佬们的代码来复现hhh(当然使用比较多也说明这个模型的性能和适用性不会太差)。老师常说,其实要多试,采用精度最高的。呜呜呜,然而现实是前期用来做精度验证的数据集的标注就是一个很大的工程量了,然后每一个模型的实现也.....很!复!杂!啊!超级烧脑,毕竟神经网络的构建可不是传统机器学习算法那样调一两个参数就好了~
当然,多试肯定是要多试的,但是我们应该有选择性的试,那么,初步的筛选、确定模型的类别就很重要了,这一点其实很靠经验,我这个菜鸡就不教坏大家了,我们来看下大佬的官方思路:


神经网络结构的选择取决于目标任务和领域,领域内标签的可用性,应用程序的延迟和容量限制等,这些导致选择差异会很大。尽管毫无疑问,开发一个文本分类器是反复试错的过程,但通过在公共基准(例如GLUE )上分析最近的结果,我们提出了以下方法来简化该过程,该过程包括五个步骤:


是不是看不懂了,我摊牌了,第一遍读完我整个人都是懵的,然后又仔细读了两遍,好像懂了一点点,又百度了一些专业名词,又懂了一丢丢了,但还是懂一半啊哈哈哈哈。估计要真正走一遍流程之后采用完全解读吧!等之后有时间实践一遍我再重新更新解读一下!

模型性能分析

当下常用的用于评估文本分类模型性能的指标,以下介绍4种: