AI名寄せ
同じものを指している行を AI にまとめさせます。 「日本商事」「日本商事株式会社」「ニホン商事」のように、文字は違うが同じ相手を指す行を 1 つのグループにします。
文字の近さだけで判定するなら文字列の類似度グルーピングが使えます。こちらは意味を見るので、略称や通称もまとめられます。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
Spark エンジンでは動きません。
行の数は変わりません。 列が 2 つ増えます(上書きを選んだときは 1 つ)。
増える列
| 列名 | 内容 |
|---|---|
名寄せ一致ID | 同じものと判定された行に付く同じ値。<グループの値>-<連番> の形 |
| 新規列名に入れた名前 | そのまとまりの代表として整えた文字列 |
このノードは「まとめる」だけでなく「整える」こともします。 まとまりごとに代表の書き方を 1 つ決めて、新しい列に入れます。AIクレンジングを別に掛ける必要はありません。
まとめられなかった行は 名寄せ一致ID も新規列も空欄になります。グループの中に 1 行しかない場合や、どの行とも同じと判定されなかった場合です。代表表記はまとまりごとに作るので、まとまりのない行には入りません。
設定項目
- 結果の挿入先を設定
- 新規列に挿入(既定)か既存列に上書き。
- 新規列名を入力必須
- 新規列に挿入のときだけ出ます。整えた文字列が入る列の名前です。
- 列を選択必須
- 既存列に上書きのときだけ出ます。整えた文字列を書き込む列です。
- 処理対象列を選択必須
- 名寄せしたい列。文字列の列だけ選べます。1 列だけです。
- グループ化する列を選択必須
- この列の値ごとに名寄せします。全体を一度に見るのではありません。型の制限はありません。
- 対象列のカテゴリを選択
- 住所 / 社名 / 氏名 / 電話番号 / 自分で設定。
- カテゴリを入力
- 自分で設定のときだけ出ます。
グループ化する列が要る理由
一度に見る範囲を区切るためです。グループの中の値を 2 つずつ総当たりで比べるので、グループ内の値の種類が n 個なら、問い合わせは n × (n − 1) ÷ 2 回になります。100 種類で 4,950 回、200 種類なら 19,900 回です。
「都道府県ごとに会社名を名寄せする」のように、同じグループの中にしか同一のものが現れない列を選んでください。適切な列がなければ、日付要素の切り出しや値を列に挿入で区切り用の列を作ります。
グループの中で値の種類が 1 つしかないときは、問い合わせずに 名寄せ一致ID を振ります。 2 行以上あっても、値が同じなら比べる必要がないためです。
先に表記を揃えておく
揺れを減らしてから掛けると精度が上がり、問い合わせの回数も減ります。 比べるのは「値の種類」なので、表記が揃うほど種類が減ります。
- 文字列のクレンジングで字幅や空白を揃える
- 特殊な文字列のクレンジングで会社名の表記を揃える
- このノードに渡す
結果は毎回同じとは限らない
AI の応答なので、同じデータでも結果が変わることがあります。まとまり方は目で確かめてください。
エラーと対処
新規列名が既存の列名とぶつかっている
新規列に挿入で、すでにある列と同じ名前を入れたときに出ます。
新規列名(
{{new_col}})が既存の列名と重複しています。
直し方 — 別の名前にするか、既存列に上書きに切り替えます。
列を選ばずに実行した
処理対象列を選択・グループ化する列を選択(既存列に上書きなら列を選択)のどれかが空のまま実行したときに出ます。前の処理で列名が変わり、選んでいた列が入力データからなくなったときにも同じメッセージです。
対象の列が選択されていません。
直し方 — 列を選び直してください。
どのグループも 1 行しかない
グループ化する列を細かくしすぎて、どのグループも 1 行だけになったときに出ます。比べる相手が 1 組も作れないためです。訳されていない英語のまま出ます。
No objects to concatenate
直し方 — グループ化する列をもっと粗い列(市区町村 → 都道府県 など)に替えてください。顧客 ID のように 1 行ごとに違う値の列は、グループ化する列には使えません。
よく使う例
1. 取引先名を名寄せする
同じ会社が複数の書き方で登録されているとき。
入力
| 都道府県 | 取引先名 |
|---|---|
| 東京都 | 日本商事 |
| 東京都 | 日本商事株式会社 |
| 大阪府 | 関西物流 |
設定
| 設定項目 | 値 |
|---|---|
| 新規列名を入力 | 取引先名_名寄せ |
| 処理対象列を選択 | 取引先名 |
| グループ化する列を選択 | 都道府県 |
| 対象列のカテゴリを選択 | 社名 |
出力 — 東京都の 2 行に同じ 名寄せ一致ID(東京都-1)が付き、取引先名_名寄せ に同じ代表名が入ります。大阪府の 1 行は比べる相手がいないので、名寄せ一致ID も 取引先名_名寄せ も空欄になります。
2. 住所を名寄せする
同じ場所が別の書き方で入っているとき。
入力
| 都道府県 | 住所 |
|---|---|
| 東京都 | 渋谷区道玄坂1-2-3 |
| 東京都 | 東京都渋谷区道玄坂一丁目2-3 |
設定
| 設定項目 | 値 |
|---|---|
| 処理対象列を選択 | 住所 |
| グループ化する列を選択 | 都道府県 |
| 対象列のカテゴリを選択 | 住所 |
出力 — 2 行が同じ 名寄せ一致ID にまとまります。
3. 問い合わせの回数を減らす
対象が多く、処理が重いとき。
入力 — 例 1 と同じ(全国 5 万行)
設定 — グループ化する列を 都道府県 より細かい 市区町村 に替えます。先に文字列のクレンジングも掛けます。
出力 — 1 グループあたりの種類が減るので、問い合わせの回数が大きく減ります。別の市区町村にまたがる同一の相手はまとまりません。
4. 名寄せ後に集計する
まとめた単位で売上を見たいとき。
入力 — 例 1 の出力
設定 — 名寄せ一致ID をキーにデータ集計で売上を合計します。
出力 — 書き方の違う行がまとまった単位で合計が出ます。名寄せ一致ID が空欄の行は 1 つのグループに入ってしまうので、先に欠損値処理で埋めるか分けてください。
5. まとまり方を目で確かめる
AI の判定が妥当かを確認したいとき。
入力 — 例 1 の出力
設定 — 行の並べ替えで 名寄せ一致ID の昇順にします。
出力 — 同じ ID の行が並ぶので、間違ってまとめられた組を見つけやすくなります。