transformersの文書分類の例のrun_glue.pyにlivedoorニュースコーパスを渡す
transformersの文書分類の例のrun_glue.pyをchABSA-datasetについて動かすをやりたいが、run_glue.pyで各文のマルチラベルの扱いが不明
そこで多クラス分類に当たる #ライブドアニュースコーパス でまず動かしてみる
第6章 文章分類 (『 #BERTによる自然言語処理入門 』)の内容を、コードを書かずにやる
結果、再現した(と言えるはず)🙌
accuracyは3%低いが、データの分け方が違うためと考えている
transformersの文書分類の例のrun_glue.pyに手元のCSVやJSONファイルを指定したいに沿って、train, val, testの3つのJSONファイルを作る部分だけコードを書く
preprocess.py from transformers 文書分類のrun_glue.pyに渡すlivedoorニュースコーパスの前処理
code:shell
$ pwd
/.../transformers/examples/pytorch/text-classification
$ # 『BERTによる自然言語処理入門』を参考にlivedoorニュースコーパスを取得
$ python preprocess.py text livedoor_news_corpus
code:ipynb
!wc -l transformers/examples/pytorch/text-classification/livedoor_news_corpus/*.json
1474 transformers/examples/pytorch/text-classification/livedoor_news_corpus/test.json
4420 transformers/examples/pytorch/text-classification/livedoor_news_corpus/train.json
1473 transformers/examples/pytorch/text-classification/livedoor_news_corpus/val.json
7367 total
あとはColabで放置(前提:transformers examplesの文書分類のrun_glue.pyを動かすための環境構築)
code:train.ipynb
!cd transformers/examples/pytorch/text-classification/ && python run_glue.py \
--model_name_or_path cl-tohoku/bert-base-japanese-whole-word-masking \
--train_file livedoor_news_corpus/train.json \
--validation_file livedoor_news_corpus/val.json \
--test_file livedoor_news_corpus/test.json \
--do_train \
--do_eval \
--do_predict \
--data_seed 42 \
--max_seq_length 128 \
--per_device_train_batch_size 32 \
--learning_rate 1e-5 \
--num_train_epochs 5 \
--output_dir /tmp/livedoor/
参考 transformersの文書分類の例のrun_glue.pyの引数について
learning_rateとnum_train_epochsは第6章 文章分類を参照した
20分未満の訓練の末
code:/tmp/livedoor/README.md
This model is a fine-tuned version of cl-tohoku/bert-base-japanese-whole-word-masking(https://huggingface.co/cl-tohoku/bert-base-japanese-whole-word-masking) on an unknown dataset.
It achieves the following results on the evaluation set:
- Loss: 0.4653
- Accuracy: 0.8513