Skip to content

SHolic/LightNLP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LightNLP

一个轻量级NLP深度学习库,提供不同NLP任务建模的简单工具。

LightNLP的接口形式类似于scikit-learn,其目的在于可以通过trainpredict方便快捷的训练较为复杂的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的使用方法,创建一个实例,调用trainpredict函数实现模型的训练和预测,详细api和参数请见文档(暂未开发)

文本分类cnntext

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")  # 印出模型结构

文本分类Albert

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_pathbatch_size=64, verbose=1)

print(pred_ret)

print("Model Structure:")
print(model2.visualize("model"))

如何为此项目提供帮助

  • clone并使用本项目
  • issue留言
  • 有好的想法,成为contributor

作者

sanders bao baojunshan123@hotmail.com

About

一个轻量级的NLP深度学习框架

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%