コンテンツにスキップ

テキストから特徴量抽出

文章を数値の列に変えます。 機械学習は文字をそのまま扱えないので、単語の出現を数値にしてからモデルに入れます。

入出力

ポート内容
入力データデータ
出力データデータ

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

行の数は変わりません。 入力の列はすべて残り、その右に単語の種類だけ列が増えます。

増える列の名前

処理できる列
Bag of Wordsbow_<単語>
TF-IDFtfidf_<単語>

単語は文字として並べた昇順に並びます。元の列も残るので、不要なら列選択/削除で落としてください。

設定項目

処理対象列を選択必須
分かち書き済みの列。文字列の列だけ選べます。1 列だけです。
処理を選択必須
Bag of Words(既定)か TF-IDF。選んだ側によって、以降の項目が変わります。

オプション(両方に出るもの)

n%以上の文書で出現する単語を対象とする
既定は 0。まれすぎる単語を外します。単位は % です。
n%以下の文書で出現する単語を対象とする
既定は 100。どの文書にも出る単語を外します。単位は % です。
出現頻度トップn番目までの単語を対象とする
空のままだと制限しません。入れると、出現回数の多い順にその数だけ残します。

Bag of Words のときだけ出るもの

出現回数を二値化する
既定は off。on にすると、何回出ても 1 にします。

TF-IDF のときだけ出るもの

正則化する
L1正則化か L2正則化。選ばないこともできます(既定は未選択)。行ごとに値の大きさをそろえます。

2 つの方法

方法値特徴
Bag of Words単語の出現回数単純。どの文書にも出る単語が強くなる
TF-IDF回数を「珍しさ」で重み付けその文書らしい単語が強くなる

文書の違いを捉えたいなら TF-IDF が向いています。

列が増えすぎるとき

単語の種類だけ列ができます。 数千語あると数千列になります。

打ち手設定
どの文書にも出る語を外すn%以下の文書で出現する単語を対象とするを下げる
1 回しか出ない語を外すn%以上の文書で出現する単語を対象とするを上げる
上限を決める出現頻度トップn番目までの単語を対象とするに数を入れる

形態素解析で名詞だけに絞っておくのも効きます。

先に形態素解析が要る

このノードは、単語が空白で区切られていることを前提にします。 元の文章をそのまま入れると、文全体が 1 つの単語として 1 列になります。先に形態素解析を掛けてください。

欠損の行は空の文字列として扱われます。 エラーにはならず、その行はすべての列が 0 になります。

エラーと対処

列を選ばずに実行した

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

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

直し方 — 文書の入った列を選び直してください。

よく使う例

1. 文書分類の特徴量を作る

問い合わせを種類別に分類するモデルに、本文を入れたいとき。

入力(形態素解析で名詞だけ残した列)

本文_形態素種類
返品 手続き返品
配送 日時配送

設定

設定項目値
処理対象列を選択本文_形態素
処理を選択TF-IDF

出力 — tfidf_手続き tfidf_日時 tfidf_返品 tfidf_配送 の 4 列が増えます。

本文_形態素tfidf_手続きtfidf_日時tfidf_返品tfidf_配送
返品 手続き1.405501.40550
配送 日時01.405501.4055

正則化を選んでいないので、行ごとの大きさはそろっていません。 正則化するに L2正則化 を入れると、同じデータが 0.7071 になります。この数値の列を分類モデルの説明変数にします。

2. 列を減らす

列が 5000 できてしまい、学習が重いとき。

入力 — 例 1 と同じ(ただし語数が多い)

設定

設定項目値
出現頻度トップn番目までの単語を対象とする200

出力 — よく出る 200 語の列だけになります。

3. どの文書にも出る語を外す

こと もの のような語がすべての文書に出て、区別の役に立たないとき。

入力 — 例 1 と同じ

設定

設定項目値
n%以下の文書で出現する単語を対象とする80

出力 — 8 割を超える文書に出てくる単語の列が消えます。

4. 出た/出ないだけを見る

回数ではなく「その語が含まれるか」だけを使いたいとき。

入力

本文_形態素
返品 返品 送料

設定

設定項目値
処理を選択Bag of Words
出現回数を二値化するon

出力 — bow_返品 が 2 ではなく 1 になります。

5. 文章の長さの違いをならす

長い文章ほど値が大きくなって、短い文章と比べられないとき。

入力 — 例 1 と同じ

設定

設定項目値
処理を選択TF-IDF
正則化するL2正則化

出力 — 行ごとに大きさがそろうので、文章の長短に左右されにくくなります。

関連