模糊比對如何在Power Query中運作
Power Query 功能,例如模糊合併、叢集值和模糊群組,使用與模糊比對相同的機制。
本文探討許多案例,示範如何利用模糊比對的選項,並明確表示「模糊」的目標。
調整相似度閾值
套用模糊比對演算法的最佳案例是,當數據行中的所有文字字串只包含需要比較且不需要額外元件的字串時。 例如,相較於比較Apples
My favorite fruit, by far, is Apples. I simply love them!
,與 4ppl3s
比較Apples
會產生較高的相似度分數。
因為第二個字串中的單字 Apples
只是整個文字字串的一小部分,因此該比較會產生較低的相似度分數。
例如,下列數據集是由只有一個問題問卷的回應所組成:“您最愛的水果是什麼?
水果 |
---|
藍莓 |
藍漿果只是最好的 |
草莓 |
草莓 = <3 |
蘋果 |
'sples |
4ppl3s |
香蕉 |
fav 水果是香蕉 |
巴納斯 |
到目前為止,我最喜歡的水果是蘋果。 我只是愛他們! |
問卷提供了一個單一文本框來輸入值,而且沒有驗證。
現在您負責叢集值。 若要執行這項工作,請將上一個水果數據表載入 Power Query,選取數據行,然後選取功能區中 [新增數據行] 索引標籤中的 [叢集值] 選項。
[ 叢集值] 對話框隨即出現,您可以在其中指定新數據行的名稱。 將此新數據行 命名為 [叢集 ],然後選取 [ 確定]。
根據預設,Power Query 會使用相似度閾值 0.8(或 80%)。 最小值 0.00 會導致所有具有相似度層級的值彼此相符,而最大值 1.00 只允許完全相符。 模糊的「完全相符」可能會忽略大小寫、文字順序和標點符號等差異。 上一個作業的結果會產生具有新 叢集 數據行的下表。
叢集完成時,不會提供所有數據列的預期結果。 數據列編號二 (2) 仍然具有 值 Blue berries are simply the best
,但它應該叢集到 Blueberries
,而且與文字字串 Strawberries = <3
、 fav fruit is bananas
和 My favorite fruit, by far, is Apples. I simply love them!
類似的情況。
若要判斷造成此叢集的原因,請按兩下 [套用的步驟] 面板中的 [叢集值] 來帶回 [叢集值] 對話框。 在此對話框中,展開 [模糊叢集選項]。 啟用 [ 顯示相似度分數] 選項,然後選取 [ 確定]。
啟用 [ 顯示相似度分數 ] 選項會在您的資料表中建立新的數據行。 此數據行會顯示所定義叢集與原始值之間的完全相似度分數。
仔細檢查時,Power Query 在文字字串 Blue berries are simply the best
串 、Strawberries = <3
、 fav fruit is bananas
和 My favorite fruit, by far, is Apples. I simply love them!
的相似度臨界值中找不到任何其他值。
在 [套用的步驟] 面板中按兩下 [叢集值] 來返回 [叢集值] 對話框。 將 相似度閾值 從 0.8 變更為 0.6,然後選取 [ 確定]。
這項變更可讓您更接近您要尋找的結果,但文字字串 My favorite fruit, by far, is Apples. I simply love them!
除外。 當您將相似度閾值從 0.8 變更為 0.6 時,Power Query 現在能夠使用相似度分數的值,從 0.6 開始,一直高達 1。
注意
Power Query 一律會使用最接近臨界值的值來定義叢集。 臨界值會定義可接受的相似度分數下限,以將值指派給叢集。
您可以將相似度分數從 0.6 變更為較低的數位,然後再試一次,直到您取得您要尋找的結果為止。 在此情況下,請將 相似度分數 變更為 0.5。 這項變更會產生您預期的結果,而文字字串 My favorite fruit, by far, is Apples. I simply love them!
現在指派給叢集 Apples
。
注意
目前,只有 Power Query Online 中的叢集值 功能會提供相似度分數的新數據行。
轉換數據表的特殊考慮
轉換數據表可協助您在執行模糊比對演算法之前,先將數據行的值對應到新的值。
如何使用轉換資料表的一些範例:
重要
使用轉換數據表時,轉換數據表中值的最大相似度分數為0.95。 這個刻意的 0.05 懲罰是用來區分原始值與這類數據行不等於轉換發生后所比較的值。
針對您第一次想要對應值,然後執行模糊比對而不加 0.05 懲罰的案例,建議您取代數據行中的值,然後執行模糊比對。