grasys blog

「こころ」の作者は誰? AutoML Natural Languageでバッチ予測してみた

文●wakahara/grasys 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はgrasys が提供する「grasys blog」に掲載されたAutoML Natural Languageでバッチ予測をしてみたを再編集したものです。

 こんにちは。若原です。

 AutoML Natural Languageでオンライン予測をする記事はよく見かけますが、バッチ予測の記事はあまり見かけないので、バッチ予測について書きます。

AutoML Natural Languageとは

 カスタムの機械学習モデルをビルドしてデプロイし、ドキュメントの分析、分類、エンティティの識別、態度の評価を行なえます。

AutoMLのドキュメント

バッチ予測の特長

 オンライン予測とは違い、モデルをデプロイせずに非同期で予測を実行できます。モデルをデプロイしている時間のコストがかかりません。

バッチ予測を実行する

予測の目的

 夏目漱石の「こころ」のテキストから作者を予測する。

使用するモデル

 小説の作者をカテゴリのラベル、小説をドキュメントとした教師データ作成して、モデルのトレーニングをしました。
詳しい方法はこちら

 今回教師データとして使った作品(青空文庫から用いました)。

作者 タイトル
夏目漱石 吾輩は猫である
夏目漱石 元日
夏目漱石 一夜
森鴎外 舞姫
森鴎外 みちの記
森鴎外 妄想

予測するデータの用意

 予測は1テキスト1ファイルの単位で、ファイルはGCSにアップロードする必要があります。

例)
 GCSのファイルパス:

gs://bucket/kokoro.txt

ファイルの内容:

 夏目漱石の「こころ」

 次に、上記でGCSにアップロードしたファイルのパスを記述したCSVファイルを作成して、 同じくGCSにアップロードをします。

例)
 GCSのファイルパス:

gs://bucket/predict.csv

ファイルの内容:

gs://bucket/kokoro.txt 

※ファイルパスを複数記入すれば複数の予測が可能です。

スクリプトで予測を実行

 予測に使用するモデルのIDを調べます。

 下記が実行するスクリプトの例です。

from google.cloud import automl

# プロジェクト番号
project_number = "000000000000"
# モデルのID
model_id = "TCN0000000000000000000"
# バッチ予測する対象のファイルパスの一覧が載ったファイルのGCSのファイルパス
input_uri = "gs://bucket/predict.csv"
# バッチ予測結果を出力するGCSのファイルパス
output_uri = "gs://bucket/result"

prediction_client = automl.PredictionServiceClient()
model_full_id = prediction_client.model_path(
    project_number, "us-central1", model_id
)

gcs_source = automl.types.GcsSource(input_uris=[input_uri])
input_config = automl.types.BatchPredictInputConfig(gcs_source=gcs_source)
gcs_destination = automl.types.GcsDestination(output_uri_prefix=output_uri)

output_config = automl.types.BatchPredictOutputConfig(
    gcs_destination=gcs_destination
)

prediction_client.batch_predict(model_full_id, input_config, output_config)

実行結果

 GCSに次のようなファイルが生成されました。

gs://bucket/result/prediction-sample_{日付}/text_classification_1.jsonl

{"textSnippet":{"contentUri":"gs://bucket/kokoro.txt"},"annotations":[{"annotationSpecId":"AnnotationSpecId","classification":{"score":0.99810386},"displayName":"mori_ogai"},{"annotationSpecId":"AnnotationSpecId","classification":{"score":0.0018961655},"displayName":"natsume_soseki"}]}

 今回は夏目漱石の「こころ」は森鴎外である可能性が高いと予測されました。

 この予測に基づいてデータを活用する例としては、下記など挙げられるかと思います。

 “森鴎外を好む人に、夏目漱石の「こころ」を推薦する”

参考資料

公式ドキュメント

■関連サイト

過去記事アーカイブ

2021年
03月
04月
2020年
04月
05月
08月
09月
10月
11月
12月
2018年
09月
2017年
06月
2014年
07月