前言
之前写过【AllenNLP】专栏学习allennlp 框架的一个入门中文教程,最近看的时候发现现在的版本已经从0.8升级到2.6了,升级内容见这里Upgrade guide from 1.x ➡️ 2.0,可以看到有很多内容已经不适应了,所以根据官网最近的教程写了新的中文教程。
本教程可以实现:基于movie review 的文本分类,包括:
1、使用python脚本train、eval、predict
2、使用Allennlp命令行train、eval、predict
3、分别使用lstm模型、bert模型进行训练
代码
代码在:https://github.com/JackKuo666/learn_allennlp_get_start
内容
1.依赖
注意:这里使用以下版本可以跑通,我安装python3.6或
allennlp2.6都出现不同的版本问题。
python == 3.8.0
allennlp == 2.4.0
pip install allennlp -i https://pypi.tuna.tsinghua.edu.cn/simple
2.训练
2.1 使用脚本训练
train
python train.py
eval
python evaluate.py
predict
python predict.py
2.2 使用 allennlp train 训练 embedding+bag_of_embedding
train
allennlp train scripts/my_text_classifier.jsonnet --serialization-dir checkpoint --include-package my_text_classifier
eval
allennlp evaluate checkpoint/model.tar.gz data/movie_review/test.tsv --include-package my_text_classifier
predict
allennlp predict checkpoint/model.tar.gz data/movie_review/test.jsonl --include-package my_text_classifier --predictor sentence_classifier
2.3 使用 allennlp train 训练 bert embedding+bert pool
这里需要下载bert预训练模型放到``bert_pretrain`文件夹下
train
allennlp train scripts/my_text_classifier_bert.jsonnet --serialization-dir checkpoint_bert --include-package my_text_classifier
eval
allennlp evaluate checkpoint_bert/model.tar.gz data/movie_review/test_small.tsv --include-package my_text_classifier
predict
allennlp predict checkpoint_bert/model.tar.gz data/movie_review/test.jsonl --include-package my_text_classifier --predictor sentence_classifier