NLP
第一章 NLP论文阅读总结--模型总结
文章目录
前言
文本分类是指用指定的标签对文本进行标记,广泛应用于舆情监督、垃圾邮件检测等领域。文本分类是用最相关的标签或类别自动为文本文档标记的过程。当标签数量限制为一个时,任务变成单标签文本分类。然而,文本有多个标签则是多标签版本,多标签版本更具有挑战性。
一、统计学方法
1.TF-IDF
- TF-IDF是一种用于信息检索与数据挖掘的常用加权技术。TF是词频,IDF是逆文本频率指数。
- TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
- TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。
2.n-gram
- N-Gram是一种基于统计语言模型的算法。
- N-Gram的基本思想:将文本里面的内容按照字节进行大小为N的滑动窗口操作,形成了长度是N的字节片段序列。每一个字节片段称为gram,对所有gram的出现频度进行统计,并且按照事先设定好的阈值进行过滤,形成关键gram列表,也就是这个文本的向量特征空间,列表中的每一种gram就是一个特征向量维度。
- 该模型基于这样一种假设,第N个词的出现只与前面N-1个词相关,而与其它任何词都不相关,整句的概率就是各个词出现概率的乘积。这些概率可以通过直接从语料中统计N个词同时出现的次数得到。
- 常用的是二元的Bi-Gram和三元的Tri-Gram。
二、传统模型
1.Bag-of-words
- Bag-of-words模型是信息检索领域常用的文档表示方法。Bag of words模型最初被用在文本分类中,将文档表示成特征矢量。
- 在信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法、句法等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的,不依赖于其它单词是否出现(是不关顺序的)。
- Bag-of-words的基本思想:假定对于一个文本,忽略其词序和语法、句法,仅仅将其看做是一些词汇的集合,而文本中的每个词汇都是独立的。简单说就是将每篇文档都看成一个袋子(因为里面装的都是词汇,所以称为词袋,Bag of words即因此而来),然后根据袋子里装的词汇对其进行分类。如果文档中猪、马、牛、羊、山谷、土地、拖拉机这样的词汇多些,而银行、大厦、汽车、公园这样的词汇少些,我们就倾向于判断它是一篇描绘乡村的文档,而不是描述城镇的。
2.Word embedding
- Word Embedding即词向量,是一种函数映射关系。我们知道,在机器学习中,特征都是以数值的形式进行传递的。同样的,在NLP中,文本特征也需要被映射成数值向量。例如,我们将单词“你好”进行Word Embedding后,可以把其映射成一个5维向量:你好 ——> (0.1, 0.5, 0.3, 0.2, 0.2)。
3.ML-KNN(multi-label knn)
1.通过knn 算法寻找和样本最近的K个样本
2.统计k个样本中每个类别的个数
3.根据第二步的统计,采用 native bayes算法计算每个标签的概率
4.输出类别概率
4.ML-NB
- ML之NB:(NLP)基于sklearn库利用不同语种数据集训练NB(朴素贝叶斯)算法,对新语种进行语种检测
- ML之NB&LoR:利用NB(朴素贝叶斯)、LoR(逻辑斯蒂回归)算法(+CountVectorizer)对Rotten Tomatoes影评数据集进行文本情感分析—五分类预测
三、深度学习模型
1.TextCNN
- 将卷积神经网络CNN应用到文本分类任务,利用多个不同size的kernel来提取句子中的关键信息(类似于多窗口大小的n-gram),从而能够更好地捕捉局部相关性。与传统图像的CNN网络相比,TextCNN 在网络结构上没有任何变化(甚至更加简单了), textCNN 其实只有一层卷积,一层max-pooling,最后将输出外接softmax 来n分类。
2.RNN
- RNN模型封装了一个非常漂亮的设计,以克服传统神经网络在处理序列数据(文本、时间序列、视频、DNA 序列等)时的短板。
- RNN 是一系列神经网络的模块,它们彼此连接像锁链一样。每一个都将消息向后传递。
3.LSTM、BiLSTM
- LSTM的全称是Long Short-Term Memory,它是RNN(Recurrent Neural Network)的一种。LSTM由于其设计的特点,非常适合用于对时序数据的建模,如文本数据。
- BiLSTM是Bi-directional Long Short-Term Memory的缩写,是由前向LSTM与后向LSTM组合而成。两者在自然语言处理任务中都常被用来建模上下文信息。
4.基于CBM (Convolutional and Bi-LSTM Model)模型
- 基于CBM (Convolutional and Bi-LSTM Model)模型的文本分类方法【该方法既能提取局部浅层语义特征,又能提取全局深层语义特征】–首先使用嵌入层的Glove模型对文本进行矢量化,然后将矢量文本分别发送到多尺度卷积神经网络(MCNN)和双向长短时记忆网络(LSTM),最后将MCNN特征域BiLSTM特征融合发送到softmax层进行分类。
四、预训练模型
1.Word2Vec
- Word2Vec是语言模型中的一种,它是从大量文本预料中以无监督方式学习语义知识的模型,被广泛地应用于自然语言处理中。Word2Vec是用来生成词向量的工具,而词向量与语言模型有着密切的关系。
- Word2vec 的两种训练模式:CBOW(Continuous Bag-of-Words Model)和Skip-gram (Continuous Skip-gram Model)。
- CBOW:通过上下文来预测当前值。相当于一句话中扣掉一个词,让你猜这个词是什么。
- Skip-gram:用当前词来预测上下文。相当于给你一个词,让你猜前面和后面可能出现什么词。
2.GloVe
- GloVe 是一种获取单词向量表征的无监督学习算法。该算法的训练基于语料库全局词-词共现数据,得到的表征展示出词向量空间有趣的线性子结构。
- GloVe的全称叫Global Vectors for Word Representation,它是一个基于全局词频统计(count-based & overall statistics)的词表征(word representation)工具,它可以把一个单词表达成一个由实数组成的向量,这些向量捕捉到了单词之间一些语义特性,比如相似性(similarity)、类比性(analogy)等。我们通过对向量的运算,比如欧几里得距离或者cosine相似度,可以计算出两个单词之间的语义相似性。
3.Fasttext
- FastText是Facebook于2016年开源的一个词向量计算和文本分类工具,在学术上并没有太大创新。但是它的优点也非常明显,在文本分类任务中,fastText(浅层网络)往往能取得和深度网络相媲美的精度,却在训练时间上比深度网络快许多数量级。在标准的多核CPU上, 能够训练10亿词级别语料库的词向量在10分钟之内,能够分类有着30万多类别的50多万句子在1分钟之内。
- fastText是一个快速文本分类算法,与基于神经网络的分类算法相比有两大优点:
1、fastText在保持高精度的情况下加快了训练速度和测试速度
2、fastText不需要预训练好的词向量,fastText会自己训练词向量
3、fastText两个重要的优化:Hierarchical Softmax、N-gram
4.BERT
- BERT的全称为Bidirectional Encoder Representation from Transformers,是一个预训练的语言表征模型。它强调了不再像以往一样采用传统的单向语言模型或者把两个单向语言模型进行浅层拼接的方法进行预训练,而是采用新的masked language model(MLM),以致能生成深度的双向语言表征。BERT论文发表时提及在11个NLP(Natural Language Processing,自然语言处理)任务中获得了新的state-of-the-art的结果,令人目瞪口呆。
-以往的预训练模型的结构会受到单向语言模型(从左到右或者从右到左)的限制,因而也限制了模型的表征能力,使其只能获取单方向的上下文信息。而BERT利用MLM进行预训练并且采用深层的双向Transformer组件。
5.ELMo
- ELMo的基本思想:用训练语言模型的套路,然后把语言模型中间隐含层的输出提取出来,作为这个词在当前上下文情境下的表征,简单但很有用!
- 之前我们一般比较常用的词嵌入的方法是诸如Word2Vec和GloVe这种,但这些词嵌入的训练方式一般都是上下文无关的,并且对于同一个词,不管它处于什么样的语境,它的词向量都是一样的,这样对于那些有歧义的词非常不友好。因此,考虑到了要根据输入的句子作为上下文,来具体计算每个词的表征,提出了ELMo(Embeddings from Language Model)。
- ELMo既有预训练,又有微调。
- ELMo模型的原理其实很简单,用到的模型就是双向的LSTM模型。
6.Hierarchical Attention
- 使用词级注意获取句子嵌入,使用句子级注意获取文档嵌入的分层注意模型。我们遵循LSTM模型中采用的策略来处理多标签任务。
7.字符级ConvNet卷积网络
- 模型设计我们设计了两个convnet -一个大的和一个小的。它们都有9层深,其中6层是卷积层,3层是完全连接层。
参考论文:
《A comparative study of automated legal text classification using random forests and deep learning》
《A text classification method based on a convolutional and bidirectional long short-term memory model》
《A Comparative Study on Word Embeddings in Deep Learning for Text Classification》
《Research and Implementation of a Multi-label Learning Algorithm for Chinese Text Classification》
《Recursive Graphical Neural Networks for Text Classification》
《Description Based Text Classification with Reinforcement Learning》
《Character-level Convolutional Networks for Text Classification》
《Arabic text classification using deep learning models》
总结
以上论文中提出的方法将逐个研读,详细请看专栏。