HenryYuxuanWang / judicial_competition

"中国法研杯"司法人工智能挑战赛第一阶段代码
MIT License
27 stars 6 forks source link

judicial_competition


语言


Python 3.5

依赖库


numpy==1.14.2
jieba==0.39
pandas==0.22.0
tensorflow==1.8.0
Keras==2.1.6
scikit-learn==0.19.1

比赛详情

比赛介绍
为了促进法律智能相关技术的发展,在最高人民法院信息中心、共青团中央青年发展部的指导下,中国司法大数据研究院、中国中文信息学会、中电科系统团委联合清华大学、北京大学、中国科学院软件研究所共同举办“2018中国‘法研杯’法律智能挑战赛(CAIL2018)”。
官方网站: http://cail.cipsc.org.cn
域名: http://180.76.238.177
GitHub: https://github.com/thunlp/CAIL

任务介绍


数据


这次采用的是第一阶段CAIL2018-Small数据,包括19.6万份文书样例,包括15万训练集,1.6万验证集和3万测试集。

{'fact': '昌宁县人民检察院指控,2014年4月19日下午16时许,被告人段某驾拖车经过鸡飞乡澡塘街子,......',
 'meta': {'accusation': ['故意伤害'],
  'criminals': ['段某'],
  'punish_of_money': 0,
  'relevant_articles': [234],
  'term_of_imprisonment': {'death_penalty': False,
   'imprisonment': 12,
   'life_imprisonment': False}}}

字段及意义:

共涉及202条罪名,183条法条,刑期长短包括0-25年、无期、死刑。

模块简介

这个模块主要包含三大块:

  1. 数据预处理 data_utils
  2. 模型 model
  3. 预测 precditor

由于时间和任务的关系,这一次我只利用了第一阶段的数据实现了罪名预测法条推荐两个任务,两个任务使用相同的模型结构。

数据预处理


数据预处理的功能主要包含在data_utils中,包括数据预处理各类功能函数集合data_processing.py和对数据进行实际预处理的数据准备模块data_preparation.py

模型


在这个项目的时候,对RNN和LSTM还不是很了解,所以主要使用了CNN和TextCNN去做,而且对比起RNN,CNN在时间成本上更有优势。

CNN模型结构

TextCNN模型结构