【笔记】NLP分类方法

作者: 账号已删除 | 来源:发表于2018-07-07 15:44 被阅读16次

    摘录于下文,对NLP分类方法大概了解,内示例代码

    入门 | CNN也能用于NLP任务,一文简述文本分类任务的7个模型

    0.数据预处理

    这一部分讲述了数据来源({0,1}情感数据)、测试集划分(1/10)、噪声清洗(http网址、#主题、@用户)


    清洗后的数据

    1.基于词级ngram的词袋模型

    流程:提取n-gram特征,组成词-文档(计数)矩阵,再生成tf-idf矩阵作为特征,用LR训练分类模型


    n-gram 词-文档矩阵

    2.基于字符级的ngram词袋模型

    与基于词的ngram类似,只是分词组合的对象是字符级别,也是生成tfidf后训练预测

    image

    3.基于词级 ngram 和字符级 ngram 的词袋模型

    由1、2的train的tfidf特征矩阵合并而成,训练预测一致

    总结一波:关于词袋模型

    • 优点:考虑到其简单的特性,词袋模型已经很强大了,它们训练速度快,且易于理解。
    • 缺点:即使 ngram 带有一些单词间的语境,但词袋模型无法建模序列中单词间的长期依赖关系。

    4.无预训练词嵌入的RNN

    Keras的Tokenizer进行分词(根据词频分词)->映射词表->词嵌入->spatial dropout->GRU->池化->全连接

    #清洗后的数据
    'breakfast time happy time'
    #分词后映射词表
    [530, 50, 119, 50]
    #句子补0对齐35列
    [0,0,0, ...,530, 50, 119, 50]
    #嵌入300维,每个句子35*300矩阵
    #spatial dropout等处理
    #GRU从左到右/从右到左,双向扫描,输出100*2=200维
    #最大池化,全连接输出
    
    RNN

    5.用GloVe预训练词嵌入的RNN

    替换4中的嵌入部分,通过自己的语料库做word embedding

    也可以用word2vec或其他方法

    6.多通道卷积神经网络

    用CNN做文本问题,通过设置不同大小的滤波器(下图的(2, 5) (3, 5) 和 (4, 5) ),列维度最大,行维度为不同窗口,类似n-gram


    image.png

    7.RNN+CNN

    先RNN,GRU后用CNN来卷积

    结果对比

    image image

    相关文章

      网友评论

        本文标题:【笔记】NLP分类方法

        本文链接:https://www.haomeiwen.com/subject/rmnvyftx.html