一、中国裁判文书数据集

1.1 数据集概括

上亿条中国裁判文书, 公开案件主要覆盖2010.1 ~ 2021.10期间的记录, 数据集体量高达93G。


1.2 声明

科研用途;需要的请加微信 372335839, 备注「姓名-学校-专业-裁判」


1.3 字段含

-  标题
-  审理法院
-  案件类型
-  网页链接
-  案号
-  审理程序
-  裁判日期
-  发布日期
-  文书内容
-  当事人
-  案由
-  法律依据
-  裁判年份
-  裁判月份
-  来源

1.4 可用价值

根据字段信息, 从该数据集中提取一些新的指标,可广泛适用于

- 法学
- 经济学
- 管理学
- 社会学
- 传播学
- 政治学
- 等

1.4 广告

数据体量越大,越乱(非结构的文本数据字段越多),门槛越高(处理难度越大), 该数据的潜在的相对价值越大。

使用这类数据需要读取大数据、文本清洗、文本分析,可以考虑学习 Python实证指标构建与文本分析,内容包括文本分析方方面面的技能点。



二、导入数据

本数据集适合电脑内存16G及以上的同学购买和练习使用。 以2021年为例,打开数据集,可以看到每个数据文件都是很大的。

内存8G以下的使用这些大体量数据需要参考这篇文章, 将大文件拆分成多个小文件,再分别读取分析。

这类数据集体量很大,几乎不可能用Excel等软件打开, 建议大家系统学习pandas库, 掌握该库后就能很方便的进行数值和文本类的数据分析。

import pandas as pd

df = pd.read_csv('2021/2021-10.csv')
#随机抽5条显示
df.sample(5)


裁判文书网, 2021年1月份数据量有

len(df)

Run

1158489

字段 「文书内容」 Nan数据占比

len(df[df['文书内容'].isna()])/len(df)  

Run

0.2687681971947943

显示第一条非Nan的**「文书内容」**

df[-df['文书内容'].isna()].head(1)


df[-df['文书内容'].isna()].head(1).to_dict()

Run

{'标题': {250: '魏晓明与王力威借款合同纠纷案执行裁定书'},
 '审理法院': {250: '黑龙江省诺敏河人民法院'},
 '案件类型': {250: '执行案件'},
 '网页链接': {250: 'https://wenshu.court.gov.cn/website/wenshu/181107ANFZ0BXSK4/index.html?docId=789c47e53b1f421eaf18aca500f71309'},
 '案号': {250: '(2021)黑7530执恢20号'},
 '审理程序': {250: '执行实施'},
 '裁判日期': {250: '2021-01-03'},
 '发布日期': {250: '2021-01-03'},
 '文书内容': {250: '黑龙江省诺敏河人民法院执 行 裁 定 书(2021)黑7530执恢20号申请执行人魏晓明,男,1964年1月1日出生,汉族,住沾河林业局。被执行人王力威,男,1977年8月18日出生,汉族,住沾河林业局。本院在执行魏晓明与王力威借款合同纠纷一案中,被执行人应履行债务80000元,执行回款50000元。未发现被执行人有其他财产可供执行。依照《最高人民法院关于适用〈中华人民共和国民事诉讼法〉的解释》第五百一十九条之规定,裁定如下:终结本次执行程序。申请执行人发现被执行人有可供执行财产的,可以再次申请执行。本裁定送达后立即生效。审判长\u3000\u3000谭国军审判员\u3000\u3000丁树桓审判员\u3000\u3000范颖杰二〇二一年一月三日书记员\u3000\u3000张晶洁'},
 '当事人': {250: '魏晓明;王力威;魏晓明;王力威'},
 '案由': {250: '借款合同纠纷'},
 '法律依据': {250: '最高人民法院关于适用《中华人民共和国民事诉讼法》的解释:第五百一十九条第一款;最高人民法院关于适用《中华人民共和国民事诉讼法》的解释:第五百一十九条第二款'},
 '裁判年份': {250: 2021},
 '裁判月份': {250: 1},
 '来源': {250: '公众号: 大邓和他的Python'}}



三、小实验

针对 2021-01.csv 数据,做下面三个小实验

  1. 案件类型统计
  2. 前10类案由
  3. 涉及公司主体的案件占比
  4. 不同地域案件量的分布情况;

3.1 案件类型统计

pd.DataFrame(df['案件类型'].value_counts(ascending=False))


3.2 前10类案由

pd.DataFrame(df['案由'].value_counts(ascending=False)[:10])


3.3 涉及公司主体的案件占比

根据「当事人」是否含「公司」字眼

df['当事人'].str.contains('公司').sum()/len(df)

Run

    0.43124190216739217

3.4 不同地域案件量的分布

案号,命名地域+编号,应该可以通过案号计算出不同地域案件量的分布情况。

#slice是字符串切片操作,根据观察感觉是第7个字符是省份简称。
provinces_ratio = df['案号'].str.slice(6, 7).value_counts(normalize=False, ascending=False)
pd.DataFrame(provinces_ratio)


但经过实验,发现地域可以是省,也可以是地级市, 所以刚刚切片的实验鲁莽了。。。 不过以省份命名的案件量排名还是占据前列。


print(pd.DataFrame(provinces_ratio).index.tolist())

Run

    ['鲁', '辽', '豫', '浙', '苏', '川', '皖', '粤', '湘', '沪', '黔', '鄂', '京', '陕', '新', '吉', '渝', '冀', '赣', '闽', '黑', '云', '晋', '津', '桂', '内', '甘', '宁', '青', '兵', '藏', '最', '琼', '0', '1', '初', ')', ' ', '2', '7', '年', '5', '', '4', '凌', '执', '8', '3', '恢', '特', '9', '温', '刑', '6', '临', '保', '莱', '峄', '东', '郯', '神', '缙', '丽', '泗', '金', '(', '单', '[', '南', '聊', '问', '鱼', '﹝', '长', '乳', '芝', '嘉', '应', '立', '齐', '岚', '湖', '衢', '台', '射', '浦', '民', '号', '晥', '伊', '荣', '柳', '\u200c', '市', '善', '盱', '华', '瑶', '宿', '柯', '垦', '河', '?', '溧', '怀', '中', '右', '司', '西', '微', '异', '行', '集', '乐', '薛', '北', '上', '沂', '沭', '烟', '额', '杭', '甬', '蓟', '永', '济', '诸', '受', '×', '开', '财', '诉', '淅', '枣', '从', '锡', '呈', '滕', '阳', '太', '宜', '峰', '坊', '滨', '德', '淮', '正', '牟', '佛', '运', '威', '兰', '栖', '古', '包', '人', '依', '康', '启', '昌', '稷', '穗', '绍']

四、相关内容



广而告之