使命描绘

给你一个文本描绘,推测相应的罪名。
比如:2010年7月2日21时许,被告人苏学君酒后独自一人走路去其妹妹苏某某家洗澡,当走到与其有矛盾的同村周某某家附近时,看见周某某站在门口,便走到周某某家门口,与周某某发生打架,在打架过程中,被告人苏学君用随身携带的刀刺中周某某腹部一刀,后逃离现场。周某某经送医院抢救无效逝世。
输出:故意伤害罪(注意,这是多标签分类使命。)

数据介绍

给定有573条犯罪事实与罪名的csv文件,如图1所示。

根据深度学习的刑事案件分类技能

图1 犯罪事实与判定罪过

实验过程

要对一个中文文本进行分类,咱们需求将文本用向量表明,再利用网络学习文本的表明,从而进行文本的分类。

文本向量化

为了将一个文本用一个向量表明,咱们先对其进行切词,去掉其间的停用词,再建立词袋,向量化文本。
切词(也称为分词或词切分)是将接连的文本(如语句或阶段)分解为单个的词汇单元的过程。停用词(Stop Words)在自然语言处理(NLP)中指的是在文本中频频呈现但一般不包含太多实际意义的词汇,如“的”、“是”、“在”等。这些词汇在文本中的存在尽管对语法结构有重要作用,但是关于案件的判定,这些词并没有多大的意义。图2展现了一句话切词,去停用词后的成果。

图2 切词,去停用词后的成果

为了向量化表明文本,咱们首先要数字化词语。那就需求建立词袋。词袋便是一个词语字典,字典里记录了词语到详细数字的映射。但咱们不是用字母顺序去排序词语,是选用词频方法,即该词越是高频,该词对应的数字越小。有了词袋后,咱们就能够将文本向量化表明,如图3所示。那为什么有这么多0呢?因为,每个文本的长度不是固定的,咱们一般选择一个比较大的长度作为每个文本向量的长度,那么没有词语的地方就填空字符,而该字符的表明恰好是数字0.

根据深度学习的刑事案件分类技能

图3 文本向量化表明

为了学习每个词语的表明,咱们将文本转化为one-hot的矩阵,如图4所示。

根据深度学习的刑事案件分类技能

图4 文本转为one-hot矩阵

那么标签怎么处理呢?相同的,咱们建立一个罪名的字典,将罪名映射到数字,转为one-hot表明。罪名分类是多标签问题,关于一个事实或许会有多个罪名,咱们只需求将对应事实不同罪名的one-hot表明相加,就得到了该事实的标签。

数据集的区分

为了进行公平的测验,咱们将数据集区分为练习集,验证集和测验集,别离占比85%,10%,5%。

语句表明学习

咱们选用两种深度学习方法,一种是直接将文本表明送入MLP进行猜测,另一种选用自注意力+Gated网络方法。

MLP方法

如图4所示,一个文本能够表明为一个one-hot矩阵,其巨细是1121435. 因为咱们设置文本长度为112而且词袋巨细为1435. 经过一个线性层和ReLU激活函数,文本表明矩阵被转换为112256。榜首行对应的便是榜首个词语的表明,咱们将它得到的词语表明拼接起来,就得到了文本的表明,即一个文本对应112*256维的向量。再经过一个全衔接神经网络,咱们能够得到终究分类的成果。

自注意力+Gated网络方法

因为自注意力能够捕捉序列内部不同词语之间的依靠联系。咱们将文本矩阵投影到256维后,送入若干的自注意力层。在咱们模型中,经过了两个自注意力层后,得到了112*512的文本矩阵。那么怎么将文本矩阵得到终究的文本向量呢?因为门控网络能够有用的进行特征交融,因而咱们使用门控网络得到一个512维的向量作为终究的文本表明。经过一个全衔接神经网络,咱们能够得到终究的最分的成果。(PASS:模型图懒得画了,比较简单,xdm GitHub直接一看便懂)

模型丢失与优化

穿插熵丢失函数被用于核算上述模型的丢失,如下述所示,

loss(labeli,predi)=∑klabeliklog(predik)+(1−labelik)log(1−predik)loss(label_{i},pred_{i})=sum_{k}{label_{ik}log(pred_{ik})+(1-label_{ik})log(1-pred_{ik})}

其间,labeliklabel_{ik}是第ii个样本的标签的第kk个属性值,predikpred_{ik}是模型猜测的第ii个样本有第kk个标签的概率,kk为标签总数。 咱们选用adam算法对咱们模型进行优化。

成果评价

评价目标

分类常见的目标有准确率、精度、查全率、ROC曲线、PR曲线等。咱们处理的是多标签分类问题,需求对每个标签独自核算,终究取平均作为终究成果。下面列表一些目标的核算。

  • 准确率(Accuracy) 衡量一切标签被正确分类的份额。但在多标签分类中,只有当一切标签都猜测正确时,才核算为一个正确的猜测,因而或许过于严厉。
  • 精确率(Precision) 在一切被猜测为正类的样本中,真正为正类的份额。在多标签分类中,需求针对每个标签独自核算。
  • 召回率(Recall) 在一切真正的正类样本中,被正确猜测为正类的份额。相同,多标签分类中需求针对每个标签进行核算。
模型评价

如表1所示,咱们能够看出简单的MLP模型,学习时刻很短,但是作用不如自注意力+Gated网络方法。这表明自注意力方法的确能够捕捉序列内的依靠联系,门控网络能够有用交融词语表明得到杰出的文本表明。因为咱们数据集比较小,这也限制了咱们模型的表现,如果有更充沛的数据进行练习,信任注意力+门控的模型会取得更好的作用。

表1 不同模型的评价成果

根据深度学习的刑事案件分类技能

表2 不同模型各个罪名下的混淆矩阵

根据深度学习的刑事案件分类技能

根据深度学习的刑事案件分类技能

图5 MLP 网络下各个罪名的 AUC 和 AUPR

根据深度学习的刑事案件分类技能

图6 自注意力+Gated 网络下各个罪名的 AUC

代码

详细代码,请参见我的github.

参考文献

[1] Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, ukasz Kaiser, and Illia Polosukhin. 2017. Attention is all you need. In Proceedings of the 31st International Conference on Neural Information Processing Systems (NIPS’17). Curran Associates Inc., Red Hook, NY, USA, 6000–6010.

[2] 着手学习深度学习.pdf