睿聚杯2020全国高校法律科技创新大赛

竞赛简介

为加强法律科技领域沟通与协作,搭建法律科技领域思想、技术、应用的交流实践平台,助力高校推动法律科技相关学科的深化发展,助推法律科技产业人才培养,由北京华宇软件股份有限公司、清华大学智能法治研究院联合发起"'睿聚杯’2020全国高校法律科技创新大赛"。

大赛面向全国高校开展,聚焦法律科技领域前沿创新成果,展开一场高水平的科创竞赛。与高校院所、科研机构和科技企业共同探索未来法律科技领域的创新发展方向。与此同时,发掘和输送法律科创人才,为法律科技领域持续发展储能蓄力。

比赛题目

法律要素与当事人关联性分析

赛题任务

多人多罪在司法行业中是一种比较常见的现象,且在司法行业需要对每个人的不同罪名进行判断。本题目需要利用模型和算法对输入的文本、要素与当事人进行匹配判断,判断在当前输入文本中,要素与当事人之间的对应关系。

环境安装

Install and Update using pip:

pip install paddlepaddle-gpu==1.8.4.post107 -i https://mirror.baidu.com/pypi/simple
pip install jieba==0.42.1 -i https://mirror.baidu.com/pypi/simple
pip install gensim==3.8.3 -i https://mirror.baidu.com/pypi/simple
pip install scikit-learn==0.23.1 -i https://mirror.baidu.com/pypi/simple

训练数据分析

数据说明

在这里插入图片描述
文号:裁判文书案号;
段落内容:需要分析的整段内容;
被告人集合:本段内容中涉及的全部当事人;
sentence:分析的句子,本句子是段落的一部分;
要素名称:本句子中出现的案情要素,由法律人员总结得出;
ovalue:与要素名称相对应,本节点为句子中的原始表达方式;
被告人:分析出与要素名称相对应的人名(该项为需要模型预测的信息项,其他为已知);

数据样例

训练集 train.txt 存放于data文件夹,其数据样例如下,一行一个训练数据,用字典保存
在这里插入图片描述

数据处理

如题目所说本任务是利用模型对输入的文本、要素与当事人进行匹配判断,因此用到的数据字段有ovalue(要素原始值)、sentence(句子)、被告人集合、被告人等四个字段,其中被告人为label。
其次由于本任务为命名体识别类型任务,与分词及词性标注的任务属同类,任务的输入是一串序列,输出也是一串序列。例子如下:

  • text_a:[故,意,毁,坏,公,私,财,物]
  • text_b: [本,院,认,为,被,告,人,寇,某,某,、,邹,某,某,故,意,毁,坏,公,私,财,物,,,数,额,较,大,,,其,行,为,已,构,成,故,意,毁,坏,财,物,罪 ]
  • 输出 :[O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,B-PER,I-PER,I-PER,O,B-PER,I-PER,I-PER,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O,O]

其中B-PER表示text_a实体的开头,I-PER表示位置实体的中间,O表示其它无关词,通过B-PER和I-PER我们就可以锁定这个实体。
切割范例如下,其会切割出ner_local_train_lined.tsv和ner_local_test_lined.tsv,两份训练和测试数据

python ./baseline/data/train_test_split.py

训练开始

简单训练案例

export PYTHONPATH=./ernie:${PYTHONPATH:-} 
python3.7 -u ./baseline/train.py  \
             --use_cuda true \
             --do_train true \
             --do_val true \
             --do_test true \
             --batch_size 48 \
             --init_pretraining_params ./baseline/ERNIE_stable-1.0.1/params \
             --num_labels 3 \
             --chunk_scheme "IOB" \
             --label_map_config ./baseline/data/label_map.json \
             --train_set ./baseline/data/ner_local_train_lined.tsv \
             --dev_set ./baseline/data/ner_local_test_lined.tsv \
             --test_set ./baseline/data/ner_local_test_lined.tsv \
             --save_steps 5000 \
             --weight_decay  0.005 \
             --warmup_proportion 0.0 \
             --validation_steps 5000 \
             --use_fp16 false \
             --epoch 100000      \
             --max_seq_len 512 \
             --learning_rate 5e-5 \
             --skip_steps 100 \
             --num_iteration_per_drop_scope 1 \
             --random_seed 0 

保存模型

调用save_model.py保存目标step模型,该文件会生成到inferences目录下

python ./baseline/save_model.py --init_checkpoint  "checkpoints/sequecneLabelingWithPremise/step_140000" 

测试模型

在predictor文件夹中修改test.py,调整想测试的模型step,范例如下:

if __name__ == '__main__':
    pwd = './predictor/inference/step_xxxxx'<xxxxx为想测试的steps,例如14000>
    NAME= 'xxxxxsteps'<xxxxx为想测试的steps,例如14000>

修改完后就能进行测试了

python ./predictor/test.py 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值