微前端架构如何改变企业的开发模式与效率提升
1169
2022-10-17
序列化标注框架,利用pytorch实现了高效的数据加载模块
SLTK - Sequence Labeling Toolkit
序列化标注工具,基于PyTorch实现BLSTM-CNN-CRF模型,CoNLL 2003 English NER测试集F1值为91.10%(word and char feature)。
1. 快速开始
1.1 安装依赖项
$ sudo pip3 install -r requirements.txt --upgrade # for all user$ pip3 install -r requirements.txt --upgrade --user # for current user
1.2 预处理&训练
$ CUDA_VISIBLE_DEVICES=0 python3 main.py --config ./configs/word.yml -p --train
1.3 训练
若已经完成了预处理,则可直接进行训练:
$ CUDA_VISIBLE_DEVICES=0 python3 main.py --config ./configs/word.yml --train
1.4 测试
$ CUDA_VISIBLE_DEVICES=0 python3 main.py --config ./configs/word.yml --test
2. 配置文件说明
修改配置文件需遵循yaml语法格式。
2.1 训练|开发|测试数据
数据为conllu格式,每列之间用制表符或空格分隔,句子之间用空行分隔,标签在最后一列(若有标签)。
修改配置文件中data_params下的path_train,path_dev和path_test参数。其中,若path_dev为空,则在训练时会按照model_params.dev_size参数,将训练集划分一部分作为开发集。
2.2 特征
若训练数据包含多列特征,则可通过修改配置文件中的data_params.feature_cols指定使用其中某几列特征,data_params.feature_names为特征的别名,需和data_params.feature_cols等长。
data_params.alphabet_params.min_counts: 在构建特征的词汇表时,该参数用于过滤频次小于指定值的特征。
model_params.embed_sizes: 指定特征的维度,若提供预训练特征向量,则以预训练向量维度为准。
model_params.require_grads: 设定特征的embedding table是否需要更新。
model_params.use_char: 是否使用char level的特征。
2.3 预训练特征向量
data_params.path_pretrain: 指定预训练的特征向量,该参数中元素格式需要和data_params.feature_names中的顺序一致(可设为null)。
2.4 其他特征
word_norm: 是否对单词中的数字进行处理(仅将数字转换为0);
max_len_limit: batch的长度限制。训练时,一个批量的长度是由该批量中最长的句子决定的,若最大句子长度超出此限制,则该批量长度被强制设为该值;
all_in_memory: 预处理之后,数据被存放在hdf5格式文件中,该数据对象默认存储在磁盘中,根据索引值实时进行加载;若需要加快数据读取速度,可将该值设为true(适用于小数据量)。
3. 性能
下表列出了在CoNLL 2003 NER测试集的性能,特征和参数设置与Ma等(2016)一致。
表. 实验结果
模型 | % P | % R | % F1 |
---|---|---|---|
Lample et al. (2016) | - | - | 90.94 |
Ma et al. (2016) | 91.35 | 91.06 | 91.21 |
BGRU | 85.50 | 85.89 | 85.69 |
BLSTM | 88.05 | 87.19 | 87.62 |
BLSTM-CNN | 89.21 | 90.48 | 89.84 |
BLSTM-CNN-CRF | 91.01 | 91.19 | 91.10 |
注:
CoNLL 2003语料-: CoNLL 2003 NER,标注方式需要转换为BIESO。词向量-: glove.6B.zip,词向量需修改为word2vec词向量格式,即txt文件的首部需要有'词表大小 向量维度'信息。
4. Requirements
python3 gensimh5pynumpytorch==0.4.0pyyaml
5. 参考
Lample G, Ballesteros M, et al. Neural Architectures for Named Entity Recognition. NANCL, 2016. Ma X, and Hovy E. End-to-end Sequence Labeling via Bi-directional LSTM-CNNs-CRF. ACL, 2016.
Updating...
clip: RNN层的梯度裁剪; deterministic: 模型的可重现性; one-hot编码字符向量; lstm抽取字符层面特征; 单机多卡训练。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~