文本处理(六)——Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai

原文:https://www.jianshu.com/p/7f35a4b33f45


Text-CNN

Text-CNN 文本分类

  • TextCNN 是利用卷积神经网络对文本进行分类的算法,由 Yoon Kim 在 “Convolutional Neural Networks for Sentence Classification” 一文 (见参考[1]) 中提出. 是2014年的算法.

文本处理(六)——Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai_第1张图片
                                                                                                        TextCNN-1

文本处理(六)——Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai_第2张图片

                                                                                                 TextCNN-2

文本分类需要CNN?No!fastText完美解决你的需求(后篇)

  • 想必通过前一篇的介绍,各位小主已经对word2vec以及CBOW和Skip-gram有了比较清晰的了解。在这一篇中,小编带大家走进业内最新潮的文本分类算法,也就是fastText分类器。fastText与word2vec的提出者之所以会想到用fastText取代CNN(卷积神经网络)等深度学习模型,目的是为了在大数据情况下提高运算速度。

使用Keras进行深度学习:(三)使用text-CNN处理自然语言(上)

  • CNN模型首次使用在文本分类,是Yoon Kim发表的“Convolutional Neural Networks for Sentence Classification”论文中。在讲解text-CNN之前,先介绍自然语言处理和Keras对自然语言的预处理。

fastText、TextCNN、TextRNN……这里有一套NLP文本分类深度学习方法库供你选择

  • brightmart的 text_classification

[站外图片上传中...(image-dd1d2e-1525483118820)]
Another Twitter sentiment analysis with Python — Part 11 (CNN + Word2Vec)

  • This is the 11th and the last part of my Twitter sentiment analysis project.
    挺不错的系列
  • Part 1: Data cleaning
  • Part 2: EDA, Data visualisation
  • Part 3: Zipf’s Law, Data visualisation
  • Part 4: Feature extraction (count vectorizer), N-gram, confusion matrix
  • Part 5: Feature extraction (Tfidf vectorizer), machine learning model comparison, lexical approach
  • Part 6: Doc2Vec
  • Part 7: Phrase modeling + Doc2Vec
  • Part 8: Dimensionality reduction (Chi2, PCA)
  • Part 9: Neural Networks with Tfidf vectors
  • Part 10: Neural Networks with Doc2Vec/Word2Vec/GloVe

Dive Into NLTK, Part XI: From Word2Vec to WordNet
挺不错的系列

spacy.io

Using pre-trained word embeddings in a Keras model

  • In this tutorial, we will walk you through the process of solving a text classification problem using pre-trained word embeddings and a convolutional neural network.
  • The full code for this tutorial is available on Github.

Keras-RNN

结合DL with python的书一起看

文本处理(六)——Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai_第3张图片

循环神经网络(RNN)介绍2:keras代码分析
目标:使用keras搭建RNN网路,使用推文数据训练模型

思路:准备工作 -> 数据序列化 -> 得到词嵌入矩阵 -> 训练网络

  • 准备工作:读取相关库函数,读入数据集,划分训练集和测试集,
  • 数据序列化:将文本转换为数字序列
  • 得到词嵌入矩阵:读取glove模型,得到词嵌入矩阵
  • 训练网络:划分训练集和验证集,搭建简单的RNN网络,训练网络

100行深度学习文本分类

  • 深度学习常用的文本分类网络有LSTM和GRU,同时CNN在文本分类中也有一定的效果。 本文将简单实现一个LSTM文本分类框架。
    NLP文本分类实战: 传统方法与深度学习
  • 文档分类是指给定文档p(可能含有标题t),将文档分类为n个类别中的一个或多个,本文以人机写作为例子,针对有监督学习简单介绍传统机器学习方法和深度学习方法。
  • 包含数据预处理:jieba、gensim特征提取,传统ML方法Adaboost以及深度学习方法
  • 本文尝试了多层CNN、并行CNN、RNN与CNN的结合、基于Hierarchical Attention的RNN、迁移学习、多任务学习、联合模型学习。在单模型和联合模型学习上,我们复现、借鉴了2017知乎看山杯比赛第一名陈云的方案,在此表示感谢。深度学习部分代码都是使用Keras框架实现的。

    NLP

文本处理(六)——Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai_第4张图片

用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践

  • 近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文题目便是文本分类问题,趁此机会总结下文本分类领域特别是应用深度学习解决文本分类的相关的思路、做法和部分实践的经验。

从CNN视角看在自然语言处理上的应用

  • 本文主要以CMU CS 11-747(Neural Networks for NLP)课程中Convolutional Networks for Text这一章节的内容作为主线进行讲解。本文主要包括了对如下几块内容的讲解,第一部分是对于常见的语言模型在进行文本表示时遇到的问题以及引入卷积神经网络的意义,第二部分是对于卷积神经网络模块的介绍,第三部分主要是介绍一些卷积神经网络应用于自然语言处理中的论文,第四部分主要是对这一篇综述进行总结。

深度学习在文本分类中的应用

  • 本文总结了文本分类相关的深度学习模型、优化思路以及今后可以进行的一些工作。

鹅厂优文 | 小姐姐如何利用TextCNN识别脏话

长文本的向量表达技术综述

DL4NLP —— 序列标注:BiLSTM-CRF模型做基于字的中文命名实体识别
这个博客也可以看看
Determined22

文本处理(六)——Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai_第5张图片
TextBoxes: 一个快速文本检测器

NLP中自动生产文摘(auto text summarization)

用CNN分100,000类图像
在这篇文章中我们尝试了 用CNN分类113,287类图像(MSCOCO)。

  • 实际上我们将每张训练集中的图像认为成一类。(当然, 如果只用一张图像一类,CNN肯定会过拟合)。同时,我们利用了5句图像描述(文本),加入了训练。所以每一类相当于 有6个样本 (1张图像+5句描述)。
  • 文章想解决的问题是instance-level的retrieval,也就是说 如果你在5000张图的image pool中,要找“一个穿蓝色衣服的金发女郎在打车。” 实际上你只有一个正确答案。不像class-level 或category-level的 要找“女性“可能有很多个正确答案。所以这个问题更细粒度,也更需要detail的视觉和文本特征。

fast.ai

文本处理(六)——Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai_第6张图片

Fast.ai 最实战深度学习在线课程 Lesson1

Fast.ai 最实战深度学习在线课程 Lesson1-7-搜狗微信
Fast.ai 深度学习实战课程-腾讯视频
在 fast.ai 课堂上,我总结的 8 个深度学习最佳实践

深度学习+自然语言处理(NLP)”专栏索引
CRF和LSTM 模型在序列标注上的优劣?


句法分析(使用NLTK+Stanford nlp、LTP)
刘兵《Entity and aspect extraction for opinion mining 》翻译笔记
哈工大车万翔:NLP中的深度学习模型是否依赖于树结构?

Word2vec

文本处理(六)——Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai_第7张图片


无痛理解word2vec
大白话讲解word2vec到底在做些什么
Deep Learning in NLP (一)词向量和语言模型-来博士
NLP 秒懂词向量Word2vec的本质
word2vec前世今生
word2vec 中的数学原理详解(一)目录和前言
词向量-paddlepaddle
词向量-paddlepaddle-极客学院

回望2017,基于深度学习的NLP研究大盘点
张钹院士:AI科学突破的前夜,教授们应当看到什么?
NLP 解决方案是如何被深度学习改写的?
Semantic Data Retrieval: Search, Ranking, and Summarization-讲义网站
神经机器翻译综述
SEE: Syntax-aware Entity Embedding for Neural Relation Extraction
https://arxiv.org/abs/1801.03603

文本处理(六)——Text-CNN、Word2Vec、RNN、NLP、Keras、fast.ai_第8张图片

Word embeddings in 2017: Trends and future directions

  • 这个博客也是很多综述、NLP前沿、全面的涉猎
    Deep Learning for NLP Best Practices

(Stanford CS224d) Deep Learning and NLP课程笔记(二):word2vec

  • wordNet的缺点
  • one-hot encoding所有词相似度都是0,且存在数据稀疏性和维度灾难的问题;
  • Distributional Representation。从大量语料中构建一个co-occurrence矩阵来定义word representation。矩阵的构造通常有两种方式:基于document和基于windows。通过统计word与document共现的次数得到的矩阵被称为word-document矩阵。这个矩阵一般被用于主题模型。相同主题的word之间往往有着较高的相似度。但该矩阵很难描述word的语法信息(例如POS tag)。我们在课堂上主要讲授的是第二类矩阵:word-context矩阵。通过统计一个事先指定大小的窗口内的word共现次数,不仅可以刻画word的语义信息,还在一定程度上反应了word的语法结构信息。co-occurrence矩阵定义的词向量在一定程度上缓解了one-hot向量相似度为0的问题,但没有解决数据稀疏性和维度灾难的问题。
  • SVD分解:低维词向量的间接学习。基于co-occurrence矩阵得到的离散词向量存在着高维和稀疏性的问题,一个自然而然的解决思路是对原始词向量进行降维,从而得到一个稠密的连续词向量。然而,高昂的计算复杂度(O(mn**2))是SVD算法的性能瓶颈。每一个新词的加入都需要在一个新的矩阵上重新运行一遍SVD分解。
  • word2vec:低维词向量的直接学习。word2vec模型背后的基本思想是对出现在上下文环境里的词进行预测(事实上,后面会看到,这种对上下文环境的预测本质上也是一种对co-occurrence统计特征的学习)。梯度计算需要对每个上下文窗口都计算出训练集中所有单词的条件概率。这对于动辄上百万的词典而言,几乎是一件不可能完成的任务。因此,Mikolov在他2013年发表的论文里提出了一些性能优化的Hacks,包括近似归一化的层次Softmax,和避免归一化的负采样技术。
  • 下一节课,学习结合二者优势的新的词向量模型——Glove模型。

(Stanford CS224d) Deep Learning and NLP课程笔记(三):GloVe与模型的评估

  • 本节课继续讲授word2vec模型的算法细节,并介绍一种新的基于共现矩阵的词向量模型——GloVe模型。最后,重点介绍word2vec模型评估的两种方式。
  • 负采样(Negative Sampling)的似然函数,避免了归一化概率的计算。
  • GloVe模型
    上节课比较了基于统计的词向量模型和基于预测的词向量模型。前者以基于SVD分解技术的LSA模型为代表,通过构建一个共现矩阵得到隐层的语义向量,充分利用了全局的统计信息。然而这类模型得到的语义向量往往很难把握词与词之间的线性关系(例如著名的King、Queen、Man、Woman等式)。后者则以基于神经网络的Skip-gram模型为代表,通过预测一个词出现在上下文里的概率得到embedding词向量。这类模型的缺陷在于其对统计信息的利用不充分,训练时间与语料大小息息相关。不过,其得到的词向量能够较好地把握词与词之间的线性关系,因此在很多任务上的表现都要略优于SVD模型。既然两种模型各有优劣,那么能不能二者各取其长,构造一个更强大的词向量模型呢?这就是接下来要介绍的GloVe模型。在GloVe的原始论文里,作者首先分析了Skip-gram模型能够挖掘出词与词之间线性关系的背后成因,然后通过在共现矩阵上构造相似的条件,得到一个基于全局信息的词向量模型——GloVe模型。
  • 模型的评估:在NLP的研究领域里,一个模型的评估通常有两种方式:Intrinsic 和 Extrinsic。

Kaggle

数据挖掘进阶:kaggle竞赛top代码分享
















你可能感兴趣的:(文本处理)