LDA
文章を自動でいくつかの話題(トピック)に分けます。 正解を与えずに、似た言葉が一緒に出てくるかたまりを見つけます。
分類したい種類が決まっているならfasttextによる文書分類を使ってください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
| トピック | データ |
出力が 2 つあります。
Spark エンジンでは動きません。
行の数は変わりません。 1 つ目の出力は、入力に 2 列足した形です。
出力の形
1 つ目(出力)
入力の列に、次の 2 列が足されます。
| 列名 | 内容 |
|---|---|
トピック番号 | その文書がいちばん近いトピックの番号。0 から始まります |
確率 | そのトピックである確からしさ |
1 つの文書には 1 つのトピックだけが付きます。 いちばん確率の高いトピックが選ばれ、残りは出力されません。
2 つ目(トピック)
| 列名 | 内容 |
|---|---|
トピック番号 | トピックの番号 |
単語 | そのトピックの代表的な単語 |
確率 | そのトピックの中でのその単語の重み |
トピックごとに代表語が並びます。 トピックに名前を付けるのはこの表を読んで人がやります。
設定項目
- 処理対象列を選択必須
- 分かち書き済みの列。文字列の列だけ選べます。1 列だけです。
- トピック数を設定
- いくつに分けるか。既定は
5。 - 使用する特徴ベクトルを選択必須
- Bag of Words(既定)か TF-IDF。
- 乱数シードを固定する
- オプションの中にあります。整数を入れます。考え方は乱数シードを参照。
先に形態素解析が要る
このノードは、単語が空白で区切られていることを前提にします。 元の文章をそのまま入れると、文全体が 1 単語になってトピックが作れません。先に形態素解析を掛けてください。
助詞や助動詞は落としておいてください。 どの文書にも出てくるので、どのトピックにも同じ語が並びます。形態素解析で名詞だけに絞るのが手軽です。
2 つの特徴ベクトル
| 選択肢 | 数え方 |
|---|---|
| Bag of Words(既定) | 単語の出現回数をそのまま使う |
| TF-IDF | どの文書にも出る語の重みを下げる |
どの文書にも出る語に引きずられるときは TF-IDF を選びます。
トピック数の決め方
正解はありません。 少なすぎると違う話題が混ざり、多すぎると似たトピックに分かれます。
既定の 5 から始め、2 つ目の出力でトピックごとの代表語を見て、意味のあるまとまりになっているか確かめてください。判断の手がかりは 2 つあります。
| 見るところ | 増やす / 減らす |
|---|---|
| 1 つのトピックの代表語に、関係のない言葉が混ざっている | トピック数を増やす |
| 代表語がほとんど同じトピックが 2 つ以上ある | トピック数を減らす |
エラーと対処
処理対象列に欠損値がある
処理対象列に欠損値が含まれています。欠損値を除外するか補完してください。
直し方 — 欠損値処理で欠損のある行を落としてください。形態素解析で品詞を絞ると、単語が残らなかった行が欠損になります。
列を選ばずに実行した
「処理対象列を選択」が空のまま実行したときに出ます。前の処理で列名が変わり、選んでいた列が入力データからなくなったときにも同じメッセージです。
対象の列が選択されていません。
直し方 — 文書の入った列を選び直してください。
よく使う例
1. 問い合わせの話題を見つける
どんな種類の問い合わせがあるか分からないとき。
入力(形態素解析で名詞だけ残した列)
| 問い合わせ_形態素 |
|---|
返品 手続き 送料 |
配送 日時 変更 |
| …(500 件) |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 問い合わせ_形態素 |
| トピック数を設定 | 5 |
| 使用する特徴ベクトルを選択 | Bag of Words |
| 乱数シードを固定する | 42 |
出力 — 1 つ目に トピック番号 と 確率 が増えます。2 つ目でトピック 0 の代表語が 返品 送料 なら、「返品に関する話題」と名前を付けられます。
2. トピックの数を変えて試す
5 では粗すぎて、違う話題が 1 つに混ざっているとき。
入力 — 例 1 と同じ
設定
| 設定項目 | 値 |
|---|---|
| トピック数を設定 | 10 |
| 乱数シードを固定する | 42 |
出力 — 代表語が分かれます。似たトピックが並ぶようなら増やしすぎです。
3. その文書らしい語を重視する
どの文書にも出る語がどのトピックにも並んでしまうとき。
入力 — 例 1 と同じ
設定
| 設定項目 | 値 |
|---|---|
| 使用する特徴ベクトルを選択 | TF-IDF |
出力 — 代表語から、ありふれた語が減ります。
4. トピックごとに件数を集計する
どの話題が多いかを数えたいとき。
入力 — 例 1 の出力
設定 — トピック番号 をキーにデータ集計で件数を数えます。
出力 — トピックごとの件数が出ます。2 つ目の出力の代表語と突き合わせて読みます。
5. 確信の低い文書を外す
トピックが付いていても当てはまりの弱い文書を、集計から外したいとき。
入力 — 例 1 の出力
設定 — 条件で行をフィルタで 確率 >= 0.5 に絞ります。
出力 — どのトピックにもはっきり寄っていない文書が落ちます。