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)

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

原文地址:https://www.cnblogs.com/qq874455953/p/10792573.html