一个中文简单的命名实体。有hmm、BiLSTM、BiLSTM-CRF,基于pytorch。
.
├── data # 数据文件夹
├── logging # 文本日志文件夹
├── model # 模型文件夹
├── run.py # 主程序入口
├── utils # utils
└── v_log # tensorboardX日志文件夹
- python 3.7
- pytorch 1.3
- seqeval
- tensorboardX
- loguru
- tqdm
数据集用的是论文【ACL 2018Chinese NER using Lattice LSTM】中从新浪财经收集的简历数据。它的每一行由一个字及其对应的标注组成,虽然原文说采用BIOES(B表示实体开头,E表示实体结尾,I表示在实体内部,O表示非实体)进行标注,但github却提供了BMOES的标注方式,其实也没什么大影响。但这里为了使用seqeval进行评测,就又换了过来,即改成了BIOES。
高 B-NAME
勇 E-NAME
: O
男 O
, O
中 B-CONT
国 I-CONT
国 I-CONT
籍 E-CONT
, O
无 O
境 O
外 O
居 O
留 O
权 O
模型 | ACC | F1 score |
---|---|---|
BiLSTM-BiLSTM | 0.957 | 0.901 |
HMM | 0.915 | 9.841 |
BiLSTM-CRF | 0.963 | 0.940 |
# 训练并测试:
# BiLSTM-BiLSTM
python run.py --model bilstm
# HMM
python run.py --model hmm
# BiLSTM-CRF
python run.py --model bilstm_crf