此项目为南京大学软件学院“数据科学基础2021秋”期末大作业
主题:司法大数据自动化标注与分析
组长:谭子悦 201250093
组员:李佳骏 201250113、邱兴驰201250112
开源链接:NintenSAGA/Final-Proj-of-DataScience2021 (github.com)
小组分工:
- 爬虫: 谭子悦
- 自动化标注: 李佳骏、谭子悦
- 图形界面:谭子悦、邱兴驰
- 数据处理与分析:谭子悦、李佳骏
- 报告撰写:谭子悦、李佳骏
Final-Proj-of-DataScience2021
├── README.md # 本文件
├── docsets # 文档集
│ ├── docsets.assets # md附件
│ ├── 初期汇报文稿.md
│ ├── 开发日志.md
│ ├── 文书纯文本及标注数据(5842份).zip
│ ├── 研究报告(上)-系统概述.md
│ ├── 研究报告(上)-系统概述.pdf
│ ├── 研究报告(下)-数据分析报告.md
│ └── 研究报告(下)-数据分析报告.pdf
├── main.py # 可执行程序
├── requirement.txt # 支持库
└── src # 源码
├── GUI # 界面模块
│ ├── __init__.py
│ ├── anno_page.py # 标注页面
│ ├── common.py # 通用定义
│ ├── crawler_page.py # 爬虫页面
│ ├── menu_page.py # 菜单页面
├── NLP # 自动化标注模块
│ ├── __init__.py
│ └── jiebaVersion # 结巴分词
│ ├── __init__.py
│ ├── city_to_prov.pkl # 城市到省份,逆向词典
│ ├── jiebaProcessing.py
│ ├── user_dicts # 用户词典
│ ├── accusation_list.txt # 罪名
│ ├── city_list.txt # 城市
│ ├── court_list.txt # 法院
│ ├── prov_list.txt # 省份
│ └── userdict.txt # 其余
├── __init__.py
├── analysis # 数据分析
│ ├── __init__.py
│ ├── core.py # 测试核心
│ ├── data_brief.py # 数据概览
│ └── util # 工具
│ ├── __init__.py
│ └── parser # 解析器
│ ├── __init__.py
│ ├── parse_alcohol.py # 酒精解析器
│ ├── parse_ch_num.py # 中文数字解析器(附加刑解析)
│ └── parse_penalty.py # 主刑解析器
└── crawling # 爬虫模块
├── Webdriver # Webdriver 内核
│ └── Edge # Edge
│ ├── msedgedriver # macOS用
│ └── msedgedriver.exe # Windows用
├── __init__.py
├── common.py # 通用定义
├── core # 核心模块
│ ├── __init__.py
│ ├── core_function.py # 核心方法
│ ├── gov.py # 中华人民共和国最高人民法院公报(已废弃)
│ └── pkulaw.py # 北大法宝
├── results # 爬取结果
│ ├── 20xx_url_list.txt # 20xx年的url列表
│ ├── log.txt # 爬取运行日志
│ ├── noise_set.pkl # 噪音字典
│ ├── ~html # html缓存(开始不存在)
│ └── ~refined_text # 提纯文本(开始不存在)
│ ├── *.txt # 文书文本
│ └── json # 标注文件夹
│
└── text_extract # 从html中提取文字
├── __init__.py
├── gov.py # 中华人民共和国最高人民法院公报(已废弃)
└── pkulaw.py # 北大法宝
-
经测试在macOS Monterey 与 macOS Big Sur上均可正常运行。
- 仅测试了Intel版,未测试ARM版
- 主要测试机型:
MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports), 2 GHz Quad-Core Intel Core i5, Intel Iris Plus Graphics 1536 MB, macOS Monterey 12.1
-
在Windows 10中可正常进入GUI界面,但界面比例会出现异常; 但由于字符编码问题(系统默认编码不是utf-8)IO相关api无法工作,因此不能正常使用。
-
由于WebDriver未提供Linux驱动,自动化爬取模块无法在Linux中运行,其余尚未测试。
所有的Python版本测试信息均基于macOS Monterey 12.1
- 由于torch兼容性问题,本程序不支持 Python 3.10.x
- Python 3.8.x 可正常运行,但会出现界面比例异常且部分GUI模块显示缺失等问题
- Python 3.9.x 可正常运行,测试环境为 Python 3.9.9
本程序自动化爬取部分的Web Driver内核为Microsoft Edge,已预先放于项目文件夹中,
使用前需要先安装最新版Microsoft Edge,否则需要Web Driver的部分无法运行。
- 运行前需先安装支持库:
pip install -r requirement.txt
- 通过在项目根目录执行
python main.py
运行本程序
本程序包含自动化爬取与自动化批注两个部分
-
文书源:
- 经稳定性测试后,文书源仅保留北大法宝一项。
- 为了获取全部文书信息的访问权限,需在南京大学内网下使用,或预先执行南京大学IP登陆。
-
爬取选项:有两个可选项,其中
- 爬取url_list——从北大法网获取相应文书的链接,存于本地。此步骤需要使用Web Driver。
- 爬取html_list——利用上一步骤取得的链接列表取回相应的html源文件,存于本地。若已勾选前者,则此选项为必选项。
- 执行完上述步骤后会解析html文件并提取出相应纯文本。
程序启动时会先行检查本地文件情况与爬取参数,若出现异常则会屏蔽相应的爬取选项。
-
爬取参数:可以设置年份与文书数量,其中
- 文书数量上限为15000(但经测试北大法宝最多只能显示2000份)
- 年份范围为2000~2021,北大法宝默认为降序显示,因此大部分文书可能出于年末
-
爬取文件将会存在
./src/crawling/results/~refined_text/
中(该文件夹运行一次后才会生成)
- 默认选择文件夹为自动化爬取的结果文件夹,文件类型为txt
- 出于性能考虑,左侧只会预览文书前2000字内容
- 对多名涉案人员或多种罪名的情况无法准确提取
- “自动批注”可在后台快速完成选定文件夹下所有文件的批注
- 批注文件将保存于
文书源/json/
中,格式为json