コンテンツにスキップ

fasttextによる予測

fasttextによる文書分類で作ったモデルを使って、新しい文章を分類します。

入出力

ポート内容
機械学習モデルモデル
入力データデータ
出力データデータ

入力が 2 つあります。 機械学習モデル 側にfasttextによる文書分類の 1 つ目の出力をつなぎます。

Spark エンジンでは動きません。

行の数は変わりません。 入力の列はすべて残り、2 列増えます。

増える列

列名内容
予測結果予測したラベル
予測確率その確からしさ。小数第 3 位に丸められます

予測結果 には、学習時に使ったラベルがそのままの文字で入ります。 学習時に数値の列を目的変数にしていた場合も、文字列として入ります。数値として計算に使いたいときは列の型変更を掛けてください。

予測は 1 つだけ出ます。 2 番目に確からしいラベルは出力されません。

文章が空欄の行は、予測結果 も 予測確率 も空欄になります。 エラーにはなりません。形態素解析で品詞を絞ると、単語が 1 つも残らなかった行が空欄になります。空欄の行があるかは、予測のあと欠損値処理の欠損値を抽出で数えられます。

設定項目

予測対象の文書列を選択必須
分類したい文章。文字列の列だけ選べます。1 列だけです。

学習時と同じ前処理をする

学習に使った文章と同じ形に整えてください。 学習時に形態素解析を掛けたなら、予測するデータにも同じ設定で掛けます。辞書や品詞の選び方が違うと、モデルが知らない単語ばかりになって精度が落ちます。

列名は違っていてかまいません。 このノードで選び直せます。

エラーと対処

列を選ばずに実行した

「予測対象の文書列を選択」が空のまま実行したときに出ます。前の処理で列名が変わり、選んでいた列が入力データからなくなったときにも同じメッセージです。

対象の列が選択されていません。

直し方 — 文書の入った列を選び直してください。学習に使ったデータと同じ列名にしておくと、作り直しのときに選び直す手間が減ります。

よく使う例

1. 新しい問い合わせを分類する

今日届いた問い合わせを自動で振り分けたいとき。

入力(学習時と同じ形態素解析を掛けた列)

受付日本文_形態素
2024-04-01返品 送料 負担
2024-04-01配送 日時 変更

設定

設定項目値
予測対象の文書列を選択本文_形態素

出力 — 予測結果 に 返品 配送、予測確率 に 0.932 のような値が入ります。

2. 精度を測る

検証データで当たり具合を見たいとき。

入力(正解の 種類 が付いている検証データ)

本文_形態素種類
返品 手続き返品
配送 遅延配送

設定 — 予測したあと、条件に応じて値を列に挿入で 予測結果 と 種類 が一致するかの列を作り、データ集計で平均を取ります。

出力 — 一致した割合がそのまま正解率になります。

3. 自信のない予測だけを人が見る

全件を人が確認するのは重いので、確からしさの低いものだけ回したいとき。

入力 — 例 1 の出力

設定 — 条件で行をフィルタで 予測確率 < 0.6 に絞ります。

出力 — 確からしさの低い行だけが残ります。この分だけを人が確認します。

4. 予測結果ごとに件数を数える

どの種類が何件来ているかを見たいとき。

入力 — 例 1 の出力

設定 — 予測結果 をキーにデータ集計で件数を数えます。

出力 — 種類ごとの件数が出ます。

5. 定期実行に組み込む

毎朝自動で分類したいとき。

入力 — 例 1 と同じ

設定 — モデルを作るワークフローと、予測するワークフローを分けます。予測側だけをスケジュールの新規作成に沿って登録し、定期実行します。

出力 — モデルを作り直さずに、毎回の新着分だけが分類されます。

関連