Skip to content

knok/exp-ml-bert

Repository files navigation

BERT多言語モデルの二値分類評価

このリポジトリについて

Google Researchが公開しているBERT日本語を含んだ多言語モデルにて、日本語で記述されたテキストの二値分類を評価してみた結果と、それを再現するスクリプト群を公開しています。

下準備

0-setup.ipynbを実行すると、ライブドアニュースコーパスを取得し、GLUE BenchmarkThe Corpus of Linguistic Acceptability (CoLA)と同じ構造のtsvファイルを生成します。 コーパスは9カテゴリのニュースから構成されていますが、そのうち「ITライフハック」「家電チャンネル」の記事のタイトル(本文ファイルの3行目)のみを用います。記事数は全部で1734本となります。

Sports WatchとPeachyを用いたデータセット

前述の処理を実行した状態で0.1-setup.ipynbを実行すると、サブディレクトリswpが作成され、そこに「Sports Watch」と「Peachy」の記事タイトルを集めたデータセットが用意されます。

青空文庫を用いたデータセット

青空文庫から、芥川龍之介と宮沢賢治の著作を収集し、ある程度の長さの本文を下処理した結果をaozoraディレクトリ以下に用意してあります。 元となったデータへのURL一覧と、データの下処理を行うスクリプトも参考用として用意してあります。

訓練と評価

run_cola.shを実行することで、ライブドアニュースコーパスデータ全体の8割を訓練データとしてCoLAタスクを訓練として実行し、1割の評価データにてモデルのaccuracyを評価します。 このスクリプトは以下のオプションを指定できます。

  • -e ###: 訓練エポック数
  • -p /path/to/python: 呼び出すpythonのパス

1-classifier-eval.ipynbにて、実際にepoch数10, 30, 3で実行した結果を残しています。

Sports WatchとPeachyでの訓練

前述で説明したスクリプトに以下のオプションを追加することで、swp以下にあるデータを用いた訓練と評価を行うことができます。

  • -s : ./swp 以下のtsvを参照し、結果も ./swp 以下に保存する

これを用いて訓練、評価した結果を1.1-classifier-eval.ipynbに残しています。

事前学習モデルを用いない(転移学習を行わない)場合

run_cola.shに-nを指定すると、事前学習モデルを読み込まないで訓練、評価を行います。結果は以下に残しています。

scikit-learnを用いた分類器の訓練

sklearnのTfidfVectorizerとMultinominalNBを使った分類器での評価結果を比較用に追加してあります。BERTのトークナイザを用いています。

参考

License

Apache 2.0

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published