注:
该项目待使用 PyTorch Lightning 重构,有望实现多 GPU 训练。但是最近有些忙,也不知道什么时候完成,争取 25 年 1 月份搞定,orz。
北京交通大学自然语言处理课程命名实体识别,基于 BERT + BiLSTM + CRF,实验所需的语料库为散文数据集lancopku/Chinese-Literature-NER-RE-Dataset: A Discourse-Level Named Entity Recognition and Relation Extraction Dataset for Chinese Literature Text (github.com)。
本次实验基于 Pytorch 编码实现,实验结果为根目录的 predict_result.json 文件。
参考:
taishan1994/BERT-BILSTM-CRF: 使用BERT-BILSTM-CRF进行中文命名实体识别。 (github.com)
(!待完善)
Python 3.9.19
- scikit-learn==1.1.3
- scipy==1.10.1
- seqeval==1.2.2
- transformers==4.27.4
- pytorch-crf==0.7.2
- opencc==1.1.1
- pandas==2.2.3
- pytorch==2.5.1
已导出requirement.txt文件,可以使用pip install -r requirements.txt或conda install --yes --file requirements.txt命令一键安装相关的库;或安装相关库。
建议使用 anaconda 管理 Python 环境,创建本项目的环境安装好相应的库再运行以下步骤。
- 配置实验运行环境
使用 PyCharm 打开本项目,打开 src/data/precess.py,右键代码任意部分运行;
生成 dev.txt,train.txt,entities_count.txt 文件位于项目根目录/data/pre_data。
打开config/config.py里面有一些模型参数配置以及本地路径配置,可以根据实际情况进行修改,本次实验使用的是 4090 云服务器。打开src/models/train.py,右键代码任意部分即可运行。
训练保存在本地的 bin 文件保存在 output 文件夹中,具体文件为 best_model.json和模型名_args.json。
运行 src/model/predict.py可以对 test.json 进行命名实体识别,生成 predict_result.json文件于 output 文件夹中。
您也可以在贡献者名单中参看所有参与该项目的开发者。
该项目签署了MIT 授权许可,详情请参阅 LICENSE.txt