一个轻量级的NLP深度学习库,提供不同NLP任务建模的简单工具。
LightNLP的接口形式类似于scikit-learn,其目的在于可以通过train和predict方便快捷的训练较为复杂的NLP模型,为新手或项目时间不充裕的使用者,提供一个benchmark。
项目提供一些NLP的数据,如常用embedding,albert/bert pytorch预训练模型,训练数据等,放在data文件夹下。
当前版本:alpha-0.0.2
LightNLP涉及的场景和模型有:
- 序列标注(NER)
- bilstm
- bilstm+crf
- albert
- abert+crf
- cnn
- 本文分类(ATC)
- bilstm
- bilstm+attention
- Han
- ELMO
- cnntext
- rcnn
- bert
- albert
- 文本纠错(AET)
- soft-masked-bert
- 文本摘要(ATS)
- 文本生成(ATG)
类似scikit-learn的使用方法,创建一个实例,调用train和predict函数实现模型的训练和预测,详细api和参数请见文档(暂未开发)。
from lightnlp.core.atc import CNNTextClassification
model = CNNTextClassification(pre_trained_embed_path="pre_trained_embedding.txt", # 也可以不填
epoch_num=2, lr=1e-3, verbose=1)
# 训练
model.train(data_path="train_data.txt") # 句子与标签tab分隔,或者直接输入corpus和label
# 预测
pred_ret = model.predict(data=predict_data_list,
data_path=predict_data_path) # data和data_path选其一即可
print(pred_ret)
# 模型保存
model.save(path)
# 模型载入
model2 = CNNTextClassification().load(path)
model.visualize(name="loss") # 画出loss曲线
model.visualize(name="lr") # 画出学习率曲线
print("Model Structure:")
model.visualize(name="model") # 印出模型结构from lightnlp.core.atc import AlbertClassification
model = AlbertClassification(pre_trained_model_path=pre_trained_model_path, # 必填,albert基于pytorch的预训练模型
epoch_num=2, batch_size=128, lr=1e-5, verbose=1)
model.train(data_path=train_data_path)
model.save(path)
model2 = AlbertClassification().load(path)
pred_ret = model2.predict(data=predict_data_list,
data_path=predict_data_path,
batch_size=64, verbose=1)
print(pred_ret)
print("Model Structure:")
print(model2.visualize("model"))- clone并使用本项目
- issue留言
- 有好的想法,成为contributor
sanders bao baojunshan123@hotmail.com