あいまいマージ は、列を比較するときにあいまい一致アルゴリズムを適用するために使用できるスマート データ準備機能です。 これらのアルゴリズムは、マージされるテーブル間の一致を検索しようとします。
[ マージ ] ダイアログ ボックスの下部にある [あいまい一致を使用してマージ オプションを実行する] ボタンを選択 すると、あいまい一致を 有効にできます。 詳細情報: マージ操作の概要
注
あいまい一致は、テキスト列に対するマージ操作でのみサポートされます。 Power Query では、Jaccard 類似性アルゴリズムを使用して、インスタンスのペア間の類似性を測定します。
サンプル シナリオ
あいまい一致の一般的なユース ケースは、アンケートなどのフリーフォーム テキスト フィールドを使用することです。 この記事では、サンプル テーブルは、1 つの質問のみを含むグループに送信されたオンラインアンケートから直接取得されました。 お気に入りの果物は何ですか?
そのアンケートの結果を次の図に示します。
すべての回答が一意である 9 つの個別の回答と、入力ミス、複数形または単数形、およびケースの問題をすべて含むアンケートへの回答を示す、列分布グラフを含むサンプルアンケート出力テーブルのスクリーンショット。
9 件のレコードには、アンケートの提出が反映されます。 アンケートの提出に関する問題は、入力ミス、複数形、単数形、大文字、小文字の問題があります。
これらの値を標準化するために、この例では Fruits 参照テーブルがあります。
すべての果物が一意である 4 つの個別の果物と、リンゴ、パイン、スイカ、バナナの一覧を示す列分布グラフを含む Fruits 参照テーブルのスクリーンショット。
注
わかりやすくするために、この Fruits 参照テーブルには、このシナリオに必要な果物の名前のみが含まれています。 参照テーブルには、必要な数の行を含めることができます。
目標は、次のようなテーブルを作成することです。ここで、これらの値をすべて標準化して、より多くの分析を行うことができます。
列分布グラフを含む質問列を含むサンプルアンケート出力テーブルのスクリーンショット。 グラフには、すべての回答が一意の 9 つの個別の回答が表示されます。 アンケートの回答には、入力ミス、複数形または単数形、およびケースの問題がすべて含まれています。 出力テーブルには、Fruit 列も含まれています。 この列には、1 つの一意の回答を含む 4 つの個別の回答を示す列分布グラフが含まれています。 また、すべての果物が正しい綴り、単数形、および正しい表記法で一覧表示されます。
あいまいマージ操作
あいまいマージを行うには、まずマージを実行します。 この場合は、 左外部結合を使用します。左側のテーブルはアンケートのテーブルで、右のテーブルは Fruits 参照テーブルです。 ダイアログ ボックスの下部にある [ あいまい一致を使用してマージを実行する ] チェック ボックスをオンにします。
[OK] を選択すると、このマージ操作により、テーブルに新しい列が表示されます。 展開すると、値が含まれていない行が 1 行あります。 これは、前の画像のダイアログ ボックス メッセージで"選択範囲が最初のテーブルから 9 行中 8 行に一致する" と表示されたとおりです。
Survey テーブルに追加されたフルーツ列のスクリーンショット。 [質問] 列のすべての行が展開されます。ただし、展開できなかった行 9 と Fruit 列に null が含まれています。
あいまい一致オプション
あいまい一致オプションを変更して、近似一致を行う方法を調整できます。 まず、[クエリの マージ ] コマンドを選択し、[ マージ ] ダイアログ ボックスで [ あいまい一致オプション] を展開します。
使用可能なオプションは次のとおりです。
- 類似性のしきい値 (省略可能): 0.00 ~ 1.00 の間の値。特定の類似性スコアを超えるレコードを照合する機能を提供します。 しきい値 1.00 は、完全一致条件の指定と同じです。 たとえば、Grapes は、しきい値が 0.90 未満に設定されている場合にのみ Graes と一致します。ここでは、文字 p がありません。 既定では、この値は 0.80 に設定されています。
- 大文字と小文字を区別しない: テキストの大文字と小文字に関係なく、一致するレコードを見つけることを可能にします。
- テキスト パーツを組み合わせて一致させる: テキスト パーツを組み合わせて一致を見つけることができます。 たとえば、このオプションが有効になっている場合、 マイクロ ソフト は Microsoft と一致します。
- 類似性スコアの表示: あいまい一致後の入力と一致した値の間の類似性スコアを表示します。
- 一致の数 (省略可能): すべての入力行に対して返すことができる一致する行の最大数を指定します。
- 変換テーブル (省略可能): カスタム値マッピングに基づいてレコードを照合できます。 たとえば、From列にブドウが含まれ、To列にレーズンが含まれている変換テーブルが提供されている場合、ブドウはレーズンと一致します。
変換テーブル
この記事の例では、変換テーブルを使用して、ペアがない値をマップできます。 この値は apls であり、 Apple にマップする必要があります。 変換テーブルには、次の 2 つの列があります。
- From には、検索する値が含まれています。
- To 列には From 列を使用して見つかった値を置き換えるための値が格納されています。
この記事では、変換テーブルは次のようになります。
| より | 移行先 |
|---|---|
| apls | 林檎 |
マージ ダイアログ ボックスに戻り、[あいまい一致オプション] の [一致数] に1と入力します。 [ 類似度スコアの表示 ] オプションを有効にし、[ 変換テーブル] でドロップダウン メニューから [ テーブルの変換 ] を選択します。
[OK] を選択すると、マージ手順に進むことができます。 テーブル値を含む列を展開すると、[ Fruit ] フィールドの他に [類似性スコア] フィールドも表示されます。 両方を選択し、プレフィックスを追加せずに展開します。
これら 2 つのフィールドを展開すると、テーブルに追加されます。 各値の類似性スコアに対して取得する値に注意してください。 これらのスコアは、類似性のしきい値を下げるか引き上げる必要があるかどうかを判断するために必要な場合に、さらなる変換に役立ちます。
この例では、 類似性スコア は追加情報としてのみ機能し、このクエリの出力では必要ないため、削除できます。 この例が 9 つの個別の値で始まったことに注意してください。ただし、あいまい結合の後には、4 つの異なる値しかありません。
あいまいマージアンケートの出力テーブルのスクリーンショット。質問列には、すべての回答が一意の 9 つの個別の回答と、入力ミス、複数形または単数形、およびケースの問題をすべて含むアンケートへの回答が示されている列分布グラフが含まれています。 Fruit列には、列分布グラフが含まれており、4種類の異なる回答と1つの一意の回答が表示され、すべての果物は正しくスペルされ、単数形で、適切な形式で一覧表示されます。
変換テーブルのしくみの詳細については、「 変換テーブルの規範」を参照してください。