BiLSTM + CRF 命名实体识别实践(下)

0. 前言

上一篇博客简单讨论了理论知识,这篇博客主要是实践部分,主要针对上一篇博客中提到的代码的优化。优化点主要包含以下几个方面:

(1)max_seq_len如何取值?

(2)sequence_len不固定会给模型带来多大的提升?

(3)batch_size不固定,方便预测

(4)词向量的预训练能给模型带来哪些好处?

(5)特定业务场景下,如何迁移?

注:数据集为公开数据集boson.

 

1. max_seq_len取值

BiLSTM + CRF 命名实体识别实践(下)
boson 数据集句子长度分布情况

从上图不难看出,大部分句子的长度不超过50。源代码设置max_seq_len=60,这里觉得设置成50就可以了。

 

2. sequence_len不固定

 

3. batch_size不固定

 

4.词向量的预训练给模型带来的好处

通过查看vec.txt提前预训练的词向量文件,发现实际出现的字都出现在该文件中,因此可以加速模型的收敛。但是否需要进一步训练还需要进一步尝试,与样本量和数据是否同分布有关。