该模型与文献[1]和[2]提供的模型相似。其结构如下图所示:
对于一个中文句子,这个句子中的每个字符都有一个属于集合{O,B-PER,I-PER,B-LOC,I-LOC,B-ORG,I-ORG}的标记。 第一层,look-up层,旨在将每个字符表示从一个独热向量转换为字符嵌入。 第二层,BiLSTM层,可以有效地利用过去和将来的输入信息,自动提取特征。 第三层,CRF层,在一个句子中为每个字符标记标签。如果使用Softmax进行标记,由于Softmax层独立地标记每个位置,可能会得到非随机标记序列。“I-LOC”不能跟在“B-PER”后面,但Softmax不知道。与Softmax相比,CRF层可以利用句子级的标签信息,对两个不同标签的转换行为进行建模。
目录.data/下包括
- 预处理好的数据,train_data,test_data
- 一个词汇表文件word2id,它将每个字符映射到一个唯一的id 要生成词汇表文件,请参考data_process.py中的代码。
如果想要使用自己的数据集,你需要:
- 把你的语料库转换成上面的格式
- 重新生成一个词汇表文件
相关模型参数存储在config目录下的配置文件中
python3 main.py --mode=train
python3 main.py --mode=test
python3 main.py --mode=predict