2018年6月16日星期六

生成对抗网络生成文字


一.生成网络(GAN)简介


生成网络是利用博弈论原理,使用两个神经网络来进行训练。其中一个的作用是判断输入是否是真实的我们称之为D,另一个的作用则是生成虚假的输出称之为G。训练主要分为两个过程,训练D使其能判断输入是否真实。训练完之后,固定D的参数,生成模型D(G),训练G使D(G)的输出接近真实的输出。然后解除D的固定参数,重复上述过程。

二.使用生成对抗网络生成文字


1.文字处理:

在这里我们不再使用自己训练的word2vec,而是采用网上训练好的模型进行使用。Chinese Word Vectors 中文词向量这里的Word → Character (1)模型就用来转换我们的文字。

2.模型构架:

我们选用在图片生成应用良好的卷积网络来作为生成模型和判断模型。 生成模型: 生成模型
判断模型: 判断模型
判断模型示例代码:

三.生成结果:


模型并没有调优只是简单的示范,生成的句子也不尽人意。这里挑几个句子作为展示。
未训练时生成结果:
  • 十十十十十十浪站|需浪|险陪霸手扣扣开桌桌营∶∶萄②①潮巾迭灶代
  • 浪十十十十十港||浪浪|滚拼霸劲扣馆避拟āāèèè|潮该巾迭簇络
  • 韵韵涉襄襄¥个体二*2团×××十××十十十十央ōō找找找应应|耐
训练后生成结果:
  • 脸胚nnnn nnnnn肿肿脸脸
  • 呀呀呀呀罢。。。。。。。。。。呀呀呀呀呀练nnn肿唱骂呀岂罢罢。
  • 呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀呀

五.参考文献:



2018年6月6日星期三

文字作者识别——去匿名化


1. 简介

由于互联网的发展,人们在网上留下很多的发言信息,而由于互联网的特性,很多的恶意的信息被留下,而发言的人无法确定。这里就是根据互联网上的各种留言,试图使用神经网络训练一个分类器,根据文本来判断作者,达到去匿名化的目的。

2.传统的分类方法

  1. 传统的作者识别的方法都是依据文本手动提取特征,依据这些特征来训练分类器,而文本不直接参与训练。而选用的分类器的种类也有很多,比如贝叶斯网络 (Bayes Network)、支持向量机(Support Vector Machine)等。
  2. 其中特征提取分为以下几个类型:
    • 根据字符的特征提取
      • 字符数
      • 英文字符数
      • 数字字符数
    • 根据单词的特征提取
      • 长单词字符数
    • 根据结构的特征提取
      • 单个句子所含单词数
      • 一个段落所含单词数
    • 根据内容的特征提取
      • 是否留有网址
      • 是否有固定的问候方式

3. 遇到的问题

  1. 网上留言长度太短:由于互联网的特性,人们的时间趋向碎片化,在网上的发言也更加短小。这些特征提取的方法应用于短句子的效果并不是很好。此次参与训练的句子平均长度只有33,75%在30以下,总字数就不多,单词的重复次数也很少,K-top等特征提取就毫无用处。词汇的丰富程度也无法确定。
  2. 网上的留言格式不规范:网上的留言很多都只是随手打出来,没有二次检查,很多错字。而且格式很不规范,网络留言基本都不使用标点符号,而使用空格来替代。根据结构的特征提取就很难使用,比如统计一句话的平均长度。根据[1]可以了解,这些不规范字符也是可以通过一定的处理来进行辅助识别的,这里没有使用。

4.处理方法

根据以上问题,结合最近兴起的神经网络,提取少量有用特征,直接根据文字进行训练来解决这些问题。使用的数据有直接使用单个字符转换成向量进行计算,对句子进行分词后进行计算。
  1. 文本数据处理方法: 这里使用word2vec,提取3500个最常用的字,对每个字分配一个编号,并对应一个长度25的向量。然后根据所用的训练集的平均长度,选取前30个字进行训练,而长度不足的使用全零向量进行填充。 word2vec 使用每个字前后的几个字来确定当前字的向量,意思用法相近的字,在向量空间上也相互接近。如下图: embedding
  2. 特征提取数据种类
    • 句子长度(字符数)
    • 单词数量
    • 长单词数量
    • 标点符号数量
    • 数字符号数量
    • 换行符数量
    • 空格数量
  3. 神经网络构架
    • 这里对输入进来的文字向量使用长短记忆单元(LSTM)进行预处理,分别生成长度为64,32的向量,并于其他特征进行合并,输入到全连接层,最后连接到单个的全连接层,使用sigmoid作为激活函数,输出结果的概率。 具体如下图: model keras_model

5.实验结果对比

  1. 只使用单字
    参数数值
    Accuracy0.68
    AUC0.74
    Prediction0.78
    Recall0.63
  2. 文字加几个提取的特征
    参数数值
    Accuracy0.67
    AUC0.73
    Prediction0.67
    Recall0.67
  3. 单字和特征以及词语
    参数数值
    Accuracy0.70
    AUC0.78
    Prediction0.77
    Recall0.68
  4. 单字,特征提取数据,分词数据,语性标注
    参数数值
    Accuracy0.70
    AUC0.76
    Prediction0.74
    Recall0.68

6.实验总结

  • 只使用单字embedding,分类准确率达到了68%,加上提取的特征,准确率没太大变化,加上分词数据增加了百分之二的准确率,词性标注没多大帮助。70%的准确率相对于中文短文本,多作者的分类情况性能并不算差,但是离具体应用还是有点距离

7.相关文献

  1. 郭 旭,祁瑞华.作者身份识别中不规范文本特征选择方法的研究.2016.
  2. 孙茂松, 陈新雄, 张开旭, 郭志芃, 刘知远. THULAC:一个高效的中文词法分析工具包. 2016.
  3. Rong Zheng,Jiexun Li, Hsinchun Chen, and Zan Huang.A Framework for Authorship Identification of Online Messages: Writing-Style Features and Classification Techniques.2006