zoukankan      html  css  js  c++  java
  • Deep Learning-Based Document Modeling for Personality Detection from Text 阅读笔记

    代码地址

    https://github.com/SenticNet/personality-detection

    1. 摘要

    这篇文章讲的是基于深度学习, 通过提取文本特征,得到一个人的五大性格的倾向(是/否)。 具体来说:使用CNN(卷积神经网络)对文本进行性格特征的抽取,并且在得到文档语义特征之后 将其和文档格式特征组合起来变成总特征, 然后对其进行二分类,得到结果。

    2. 方法综述

    我们的步骤包括输入信息预处理, 过滤, 特征提取和二分类。其中我们提取的特征包括两个方面, 一个是在文档层面上的文本格式特征。
    另一个文档层面上的语义特征,把提取的这两个特征组合起来用于最后的二分类。
    特别的, 文档层面上的语义特征的提取是 先把每个词用向量表示出来, 然后输入到CNN, CNN通过把词组成n-grams, n-grams组成句子, 句子组成文档的这样一种层次方式 得到文档层面上的语义特征 , 后面会详细说到。

    2.1 输入信息预处理

    包括分句, 数据清理, 合并, 比如转换成小写之类的。

    2.2 文档层面的格式特征提取

    我们使用Mairesse baseline feature set 这个特征集这个规范提取格式方面的特征, 包括此的个数, 平均句子长度等

    2.3 数据过滤

    因为有些句子可能并没有包含有用的性格信息, 我们将这些信息过滤掉, 提高CNN的表现, 具体细节文章没有给出,需要自行看代码。

    2.4 单词层面上的特征提取

    首先通过word embedding(词嵌入)把单词变成一个向量,或者说把词空间映射成一个连续的向量空间, 使用的词嵌入方式是 word2vec embeddings, 在这个过程中我们得到了文档的表示方式: 可变长度的句子, 其中句子是由可变长度的单词向量组成(每个单词的特征是固定的)

    2.5分类

    我们使用CNN进行分类, 其中他的输入是词向量,那么句子就表示成为一组词向量, 然后在网络的某个层把词嵌入到句子, 此时句子的词向量将变成一个固定的数字。在这一层文档变表示成为不定长度的句子向量,最后在一层把文档变成固定长度的文档向量, 然后把这个向量和前面提取的格式特征组合在一起, 此向量就是我们对一个文档的总特征表示, 我们将把这个总特征用于最后的分类。

    3. 分类网络结构

    在这里插入图片描述
    分类网络包括5个步骤, 7个层次,每个性格方面都有一个结构相同的分类网络, 所以一共时5个分类网络,分别对5个性格方面进行分类

    3.1 步骤

    • 词向量化 (使用word2vec词嵌入)
    • 句子向量化
    • 文档向量化
    • 对文档进行分类

    3.2 层次

    • input (word vectorization)
    • convolution (sentence vectorization)
    • max pooling (sentence vectorization),
    • 1-max pooling (document vectorization),
    • concatenation (documentvectorization),
    • linear with Sigmoidactivation (classifcation)
    • twoneuron softmax output (classifcation)

    每个层的具体细节在论文里给出, 虽然比较简洁, 需要结合代码来查看。

  • 相关阅读:
    HDOJ_2709_Sumsets
    HDOJ_2012_素数判定
    HDOJ_2011_大二写_水仙花树
    HDOJ_2010_大二写_水仙花数
    HDOJ_1290_大二写_献给杭电五十周年校庆的礼物
    HDOJ_2047_阿牛的EOF牛肉串
    HDOJ_2041_大二写_超级电梯
    HDOJ_2044_大二写_一只小蜜蜂...
    HDOJ_2046_骨牌方格_大二写
    HDOJ 2013_大二写
  • 原文地址:https://www.cnblogs.com/qq874455953/p/10792573.html
Copyright © 2011-2022 走看看