序列化标注框架,利用pytorch实现了高效的数据加载模块

网友投稿 1169 2022-10-17

序列化标注框架,利用pytorch实现了高效的数据加载模块

序列化标注框架,利用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.3591.0691.21
BGRU85.5085.8985.69
BLSTM88.0587.1987.62
BLSTM-CNN89.2190.4889.84
BLSTM-CNN-CRF91.0191.1991.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小时内删除侵权内容。

上一篇:文档流 css中的float clear与布局
下一篇:shineframe : 高性能超轻量级C++开发库及服务器编程框架
相关文章

 发表评论

暂时没有评论,来抢沙发吧~