诸神缄默不语-个人CSDN博文目录

本文是2021年SIGIR论文,官方下载地址:https://dl.acm.org/doi/10.1145/3404835.3462826
官方GitHub地址:yuelinan/NeurJudge: The code of “NeurJudge: A Circumstance-aware Neural Framework for Legal Judgment Prediction”(SIGIR2021))

本文也关注LJP任务。
本文关注事实描述文本中的circumstances of crime(事实描述文本中的不同部分),提出circumstance-aware legal judgment prediction framework (i.e., NeurJudge)模型。
用中间子任务的结果来将事实描述文本划分为不同circumstances,用以预测其他子任务。(罪名→法条→刑期)
解决易混淆的法条和罪名问题:将NeurJudge扩展为NeurJudge+:用标签嵌入,将标签(法条和罪名)的语义信息融入到事实描述文本中。(这个做法明显是参考LADAN的)

circumstance情节
事实描述文本可以分为ADC(定罪情节)和SEC(量刑情节)
SEC可以分为SSC(法定量刑情节)和DSC(酌定量刑情节)
在论文中对相应内容的具体介绍可以参考本博文第一节的内容

文章目录

  • 1. Circumstances和子任务顺序
  • 2. NeurJudge
    • 2.1 问题定义
    • 2.2 模型
    • 2.3 NeurJudge
    • 2.4 NeurJudge+
  • 3. 实验
    • 3.1 数据集
    • 3.2 主实验结果
    • 3.3 Ablation Study
    • 3.4 案例分析
  • 4. 代码复现

1. Circumstances和子任务顺序


ADC→verdicts(罪名和法条)
SEC(SSC+DSC)→刑期

2. NeurJudge

2.1 问题定义

2.2 模型

2.3 NeurJudge

用罪名分割事实描述文本为ADC和SEC
用ADC预测法条
用法条从SEC中识别出SSC和DSC,用以预测刑期

用全部文本预测罪名→预测ADC和SEC→用ADC预测法条→预测SSC和DSC→预测刑期

  1. Document Encoder:对事实/法条/罪名描述文本进行表征。GRU或BERT,代码里只给出了GRU版本的实现

    1. GRU:用预训练word2vec来作为词表征初始化
    2. BERT
  2. Fact Separation:先选ADC,然后再选出由SSC和DSC构成的SEC
    1. Circumstances of Crime aware Fact Separation (CCFS)
    2. ADC与罪名定义相似,SSC与法条相似
    3. 用罪名分隔ADC和SEC
      1. 在事实描述文本得到的词表征Hd\mathbf{H}^dHd上per-dimension mean-pooling
      2. 用MLP在此表征上预测罪名

      3. 用事实描述文本得到的词表征和罪名表征分隔事实描述文本,此处参考资料1我还没看,方法叫是Vector Rejection
        用Document Encoder得到Hc^\mathbf{H}^{\hat{c}}Hc^Hd\mathbf{H}^dHd
        计算二者词之间的relevance(用点积计算得到相似度)

        对整个事实描述文本(softmax是一种软化版的max,用来从罪名表征中抽取与事实描述文本最相关的词(软化版)):
        (上述两步在代码里都是作为attention操作)
        用事实描述在这个attention上做vector rejection,计算相似和不相似的部分(ADC/SEC)(ADC就是直接投影过去。SEC就是减掉投影,根据三角形法则,这个就是跟对面垂直的部分了)

        KaTeX parse error: Unexpected end of input in a macro argument, expected '}' at position 5: \hat\̲m̲a̲t̲h̲b̲f̲{H}^{d^+}平均值池化,得到最终的ADC向量f+\mathbf{f}^+f+
        很直觉地容易想到,既然要算的是事实和标签之间的相关/不相关关系,为什么不直接用事实表征对标签表征做vector rejection呢,感觉是为了把标签表征投影到事实表征的空间,所以加了一环attention,抽取事实表征中与标签表征相关性更强的内容,作为投影环节?虽说我认为真实原因其实是之前的论文1就是这么干的所以就继续这么干。GDO中有类似的vector projection操作,但是显然GDO那边邻居标签本来就属于同一表征空间,所以不需要投影环节
    4. 用ADC经MLP预测法条
    5. 类似罪名,得到Ha^\mathbf{H}^{\hat{a}}Ha^,用以将SEC向量KaTeX parse error: Unexpected end of input in a macro argument, expected '}' at position 5: \hat\̲m̲a̲t̲h̲b̲f̲{H}^{d^-}分割为SSC向量和DSC向量,分别做平均值池化得到SSC和DSC
  3. 用SSC和DSC(concat起来)预测刑期:
  4. 加权交叉熵损失函数:
    Honestly其实就是把3个损失函数1:1:1加起来

2.4 NeurJudge+

增加了罪名和法条的标签相似图,用以实现GDO操作(类似LADAN2,但是LADAN的相似component是用权重矩阵训练出来的,NeurJudge的相似component是vector projection)

Graph Construct Layer
认为HMN的树形结构对不同父标签下的子标签的关系有所忽略,因此将树扩建为图(charge/article similarly graph3

通过Document Encoder→平均值池化得到标签特征向量

Graph-based Label Embedding (GLE)

  1. Graph Decomposition Operation (GDO)
  2. Label-to-Fact (L2F) attention(大概意思就是用GRU得到的罪名表征和special charge features代码里没写这是个啥,在代码里写的就是经GDO之后的罪名表征分别对事实描述做个attention,得到2个attention)
    concat 2个attention后得到charge label aware fact representation,和对应的法条表征
  3. 将这两个向量结合到NeurJudge上,做预测:

3. 实验

3.1 数据集

数据分析

3.2 主实验结果

3.3 Ablation Study

3.4 案例分析


4. 代码复现

我直接在我使用LADAN预处理后的数据上进行了复现。数据预处理的过程以后在LADAN那边笔记上补充。
原项目中使用的原始数据文件格式应该是类似原始数据的。就他文章里提及的处理方式好像在代码里都没有体现出来,不知道怎么处理的。
代码里没有给作者的word2vec模型和CAIL-big数据集上的图,可以跟作者要。
我的主要修改内容是代码顺序、数据加载和word2vec模型加载代码(这个作者代码里没给,如果实在不会写的话可以跟作者要),整体还是跟原代码相似的

代码里是直接给出了NeurJudge+的代码,如果要剖离图部分做NeurJudge也可以,但是这个我就不管了。

model.py:包含NeurJudge模型(别的代码文件巴拉巴拉的感觉挺容易看懂的,可以看我别的博客来增长知识。以后我有时间再补到这里吧)

  1. 词向量嵌入
  2. self.encoder_charge(GRU)对法条和罪名文本进行表征(法条文本就是原文,罪名文本则是罪名“定义”4),取输出在所有词上的平均值池化作为每个样本的最终表征
  3. self.graph_decomposition_operation()方法分别对罪名和法条进行2层GDO操作,得到新的表征

    就是遍历2次,每次遍历所有标签,对每个标签的所有邻居进行遍历,O(N3)O(N^3)O(N3)以上了应该有,但是图挺小的所以还能行。计算标签与每个邻居之间的g
    向量之间先元素相乘(*),然后再求和(torch.sum(x,-1)),就是点积。
    被除数加上了1e-10,应该是为了防止出现全0的情况(向量元素是负数咋办小编也不知道)。
  4. self.encoder()(GRU)对案例文本进行表征
  5. L2F attention:罪名版

    把法条表征(通过GRU和通过GDO的2种表征分别做一个)广播到每个案例batch一个new_charge_repeat = new_charge.unsqueeze(0).repeat(d_hidden.size(0),1,1),然后用Code_Wise_Attention对案例文本表征实现attention机制,分别得到两个表征
    (我还有个问题就是WαW_\alphaWα怎么不见了)
    把两个concat起来,用MLP预测罪名logits
  6. 得到预测罪名,用fact_separation():Vector Rejection
    对预测的罪名进行词向量嵌入,用以和案例文本表征实现Mask_Attention
    (一样,线性转换部分神秘消失……)

    在代码里相比公式主要就是考虑了mask的问题,叠了2层mask(一个在softmax之前,一个在×V之前)
    然后计算g,和GDO那部分的写法差不多
    返回ADC和SEC表征
  7. L2F attention法条版
  8. 将案例文本表征、L2F attention法条得到的表征、ADC表征concat起来,过GRU,池化,过MLP,预测法条
  9. 然后用法条对SEC表征也来一个fact_separation(),略,得到SSC和DSC
  10. 将案例文本表征、SSC和DSC concat起来,过GRU,池化,过MLP,预测刑期

  1. Sentence Similarity Learning by Lexical Decomposition and Composition ↩︎ ↩︎

  2. 可参考我之前撰写的博文:Re27:读论文 LADAN Distinguish Confusing Law Articles for Legal Judgment Prediction ↩︎

  3. LADAN代码里给出的相似度阈值是TFIDF表征的余弦相似度大于0.3,NeurJudge里没给,作者说是word2vec表征的余弦相似度0.5。我自己用的是word2vec表征的平均值池化的余弦相似度,法条的阈值是0.95,罪名的阈值是0.85 ↩︎

  4. NeurJudge原项目中给出了罪名的定义、主体、主观方面、客体、客观方面的信息https://github.com/yuelinan/NeurJudge/blob/main/neurjudge/data/charge_details.json

    代码中只给了文本表征时使用定义的代码,所以我自己写做图的代码时也只用了定义。 ↩︎

Re38:读论文 NeurJudge: A Circumstance-aware Neural Framework for Legal Judgment Prediction相关推荐

  1. Re 39:读论文 CTM Augmenting Legal Judgment Prediction with Contrastive Case Relations

    诸神缄默不语-个人CSDN博文目录 论文名称:Augmenting Legal Judgment Prediction with Contrastive Case Relations 论文下载地址:h ...

  2. Re6:读论文 LeSICiN: A Heterogeneous Graph-based Approach for Automatic Legal Statute Identification fro

    诸神缄默不语-个人CSDN博文目录 论文名称:LeSICiN: A Heterogeneous Graph-based Approach for Automatic Legal Statute Ide ...

  3. 读论文(二):HMB-SSD: Framework for Efficient Exploiting of the Host Memory Buffer in the NVMe SSD

    读论文(二):HMB-SSD: Framework for Efficient Exploiting of the Host Memory Buffer in the NVMe SSD 问题背景 提出 ...

  4. Re23:读论文 How Does NLP Benefit Legal System: A Summary of Legal Artificial Intelligence

    诸神缄默不语-个人CSDN博文目录 论文名称:How Does NLP Benefit Legal System: A Summary of Legal Artificial Intelligence ...

  5. Re7:读论文 FLA/MLAC/FactLaw Learning to Predict Charges for Criminal Cases with Legal Basis

    诸神缄默不语-个人CSDN博文目录 论文名称:Learning to Predict Charges for Criminal Cases with Legal Basis 论文ArXiv网址:htt ...

  6. Re13:读论文 Gender and Racial Stereotype Detection in Legal Opinion Word Embeddings

    诸神缄默不语-个人CSDN博文目录 论文名称:Gender and Racial Stereotype Detection in Legal Opinion Word Embeddings 论文ArX ...

  7. Re28:读论文 CECP Charge Prediction by Constitutive Elements Matching of Crimes

    诸神缄默不语-个人CSDN博文目录 论文名称:Charge Prediction by Constitutive Elements Matching of Crimes IJCAI官方下载地址:htt ...

  8. Re15:读论文 LEVEN: A Large-Scale Chinese Legal Event Detection Dataset

    诸神缄默不语-个人CSDN博文目录 论文名称:LEVEN: A Large-Scale Chinese Legal Event Detection Dataset 本文是2022年ACL论文,作者来自 ...

  9. 读论文《Recurrent neural network based language model 》

    读论文<Recurrent neural network based language model > 标签(空格分隔): 论文 introduce 本文将循环神经网络RNN引入了神经网络 ...

最新文章

  1. Tomcat发布项目方法!
  2. php获得帮助类数据_PHP实现的一个时间帮助类
  3. 使用FP-growth算法发现频繁项集
  4. mysql特殊编码_Mysql 字符编码
  5. win10下git的配置教程
  6. 【译】How Microsoft Lost the API War
  7. NoSQL分布式数据库的独家见解- Adam Fowler
  8. 常见算法及问题场景——图
  9. mysql 1066解决方法_MySQL查询语法帮助:错误#1066-表格/别名不唯...
  10. mysql myisam写入性能_(转)innodb 与 myisam 读写性能分析
  11. php里 \r\n换行问题
  12. C++ 的万能头文件,你知道多少?
  13. Web前端开发实验(导航栏、购物页面)
  14. wifi配网过程的详细介绍
  15. Ping命令返回错误信息说明
  16. 谷歌搜索、谷歌学术、Github的镜像网站
  17. 剑指 Offer(C++版本)系列:剑指 Offer 10- I 斐波那契数列
  18. H.264的两个概念:DC系数和AC系数
  19. Watts S. Humphrey:软件质量之父
  20. Linux添加PCF8563 RTC支持

热门文章

  1. OSChina 周六乱弹 —— 我一直把一哥们当朋友,但
  2. 使用windows自带diskpart转换磁盘格式
  3. Docker部署Oracle11g
  4. 单目初始化 单应矩阵 本质矩阵 恢复R t 三角变换求 3D点
  5. 实用教程:如何在电脑上安装安卓应用程序
  6. 行业分析-磁共振造影剂市场现状及未来发展趋势
  7. CTF密码学部分知识总结(一)
  8. 畅想未来计算机英语作文带翻译,my future英语作文带翻译
  9. 【Codeforces Round #547 (Div. 3)】 A B C D E F1 F2 G
  10. 请用函数实现一个判断用户输入的年份是否是闰年的程序