Power Query でのあいまい一致の動作

あいまい一致値のクラスター化あいまいグループ化などの Power Query の機能の動作には、あいまい一致と同じメカニズムが使われます。

この記事では、"あいまい" を明確にするためのあいまい一致のオプションを利用する方法がわかる多くのシナリオについて説明します。

類似性のしきい値を調整する

あいまい一致アルゴリズムを適用する最適なシナリオは、列内のすべてのテキスト文字列に、比較する必要がある文字列だけが含まれていて、余計なコンポーネントが含まれていない場合です。 たとえば、Apples4ppl3s を比較する方が、ApplesMy favorite fruit, by far, is Apples. I simply love them! を比較するより類似性スコアが高くなります。

このような低い類似性スコアになるのは、2 番目の文字列の単語 Apples は、テキスト文字列全体の中の小さな部分でしかないためです。

"What is your favorite fruit?" (好きな果物は何ですか?) という質問 1 つだけのアンケートからの回答で構成される次のデータセットをご覧ください。

Fruit
Blueberries
Blue berries are simply the best
Strawberries
Strawberries = <3
Apples
'sples
4ppl3s
バナナ
fav fruit is bananas
Banas
My favorite fruit, by far, is Apples. I simply love them!

このアンケートでは、値を入力するテキスト ボックスは 1 つで、検証は行われません。

次に、値のクラスター化を行います。 それを行うには、前の果物のテーブルを Power Query に読み込み、列を選んでから、リボンの [列の追加] メニューの [Cluster values](値のクラスター化) オプションを選びます。

テーブルの Fruit 列を選んだ後で使用できるリボンの [列の追加] メニューの [Cluster values](値のクラスター化) アイコン。

[Cluster values](値のクラスター化) ダイアログ ボックスが表示され、新しい列の名前を指定できます。 この新しい列に Cluster という名前を付けて、 [OK] を選びます。

Fruit 列を選んだ後の [Cluster values](値のクラスター化) ダイアログ ボックス。 新しい列名フィールドが "Cluster" に設定されています。

Power Query で使用される既定の類似性しきい値は 0.8 (80%) であり、前の操作の結果、新しい Cluster 列を含む次のテーブルが生成されます。

既定値で Fruit 列に対して値のクラスター化操作を実行した後の既定の出力。

クラスター化は行われましたが、すべての行について期待した結果にはなっていません。 行番号 2 の値はまだ Blue berries are simply the best のままですが、Blueberries にクラスター化されていなければならず、テキスト文字列 Strawberries = <3fav fruit is bananasMy favorite fruit, by far, is Apples. I simply love them! についても同様のことが発生しています。

このクラスター化の原因を明らかにする必要があります。 そのためには、クラスター化された値 のステップをダブルクリックして、 [Cluster values](値のクラスター化) ウィンドウに戻ります。 このウィンドウ内で、 [Fuzzy cluster options] (あいまいクラスター オプション) というテキストを展開し、次の図に示すように [Show similarity scores] (類似性スコアを表示する) オプションを有効にして、[OK] ボタンをクリックします。

[Fuzzy cluster options](あいまいクラスター オプション) が表示され、[Show similarity scores](類似性スコアを表示する) オプションがオンになっている [Cluster values](値のクラスター化) ウィンドウ。

[Show similarity scores](類似性スコアを表示する) オプションを有効にすると、定義されたクラスターと元の値の類似性スコアを正確に示す新しい列がテーブルに表示されます。

Fruit_Cluster_Similarity という新しい類似性スコア列が含まれるテーブル。

詳しく調べると、テキスト文字列 Blue berries are simply the bestStrawberries = <3fav fruit is bananasMy favorite fruit, by far, is Apples. I simply love them! については、Power Query が類似性しきい値内で他の値を見つけられなかったことがわかります。

クラスター化された値 のステップをダブルクリックして [Cluster values](値のクラスター化) ダイアログ ボックスにもう一度戻り、次の図のように [Similarity threshold](類似性しきい値) を 0.8 から 0.6 に変更します。

[Fuzzy cluster options](あいまいクラスター オプション) が表示され、[Similarity threshold](類似性しきい値) が 0.6 に設定され、[Show similarity scores](類似性スコアを表示する) オプションがオンになっている [Cluster values](値のクラスター化) ダイアログ ボックス。

この変更により、テキスト文字列 My favorite fruit, by far, is Apples. I simply love them! を除き、望ましい結果に近づきます。 これは、 [Similarity threshold] (類似性しきい値) を 0.8 から 0.6 Power Query に変更したためです。Power Query は、0.6 から 1 までの類似性スコアの値を使用できるようになります。

類似性しきい値を 0.6 と定義し、クラスター列に新しい値が割り当てられた後のテーブル。

注意

Power Query では、常に、しきい値に最も近い値を使用してクラスターが定義されます。 しきい値は、クラスターへの値の割り当ての作成を許容される類似性スコアの下限を定義します。

期待した結果が得るまで、類似性スコア を 0.6 からさらに低い値に変更して試すことができます。 この場合は、類似性スコア 0.5 に変更すると、次の図に示すように、テキスト文字列 My favorite fruit, by far, is Apples. I simply love them! がクラスター Apples に割り当てられた、期待する正確な結果が得られます。

クラスター列に正しい値が含まれるテーブル。文字列 "My favorite fruit, by far, is Apples. I simply love them!" が、クラスター "Apples" に割り当てられています。

注意

現時点では、Power Query Online で類似性スコアを持つ新しい列が提供されるのは、値のクラスター化機能だけです。