DOUBLEMETAPHONEEQUALS 函式

使用 Double Metaphone 演算法比較兩個輸入字串。您可以修改選用的門檻參數來調整比對的容忍度。

Double Metaphone 演算法會處理輸入字串,並為其產生主要和次要拼字。如果是英語字詞,這個演算法會移除不發音字母、將字元組合正規化為單一定義,並移除字詞開頭以外的母音,藉此將拼字不一致的情形正規化以改善比對結果。詳情請參閱 https://en.wikipedia.org/wiki/Metaphone

提示:這個函式很適合用來對字串值 (例如可能的彙整鍵值) 執行模糊比對。

來源值可以是字串常值、資料欄參照或求出值為字串的運算式。

基本用法

字串常值參照範例:

derive type:single DOUBLEMETAPHONEEQUALS('My String', 'my string') as:'compare'

輸出:compare 資料欄中產生 true 值。

資料欄參照範例:

derive type:single value:DOUBLEMETAPHONEEQUALS(string1, string2, 'weak') as:'compare_weak'

輸出:產生新資料欄 compare_weak,其中含有使用 Double Metaphone 演算法對 string1string2 資料欄值的比較結果。'weak' 參數輸入表示每項輸入只有次要編碼必須相符。

語法

derive type:single value:DOUBLEMETAPHONEQUALS(string_ref1, string_ref2, match_threshold)

引數是否必要?資料類型說明
string_ref1字串要套用於函式的第一個資料欄名稱或字串常值
string_ref2字串要套用於函式的第二個資料欄名稱或字串常值
match_threshold字串要在比較中當做比對門檻的選用字串值。預設值為 Normal

如要進一步瞭解語法標準,請參閱語言文件語法附註

string_ref1、string_ref2

您想透過 Double Metaphone 演算法篩選其元素的字串常值、資料欄參照或運算式。

使用須知:

是否必要?資料類型示例值
字串常值、資料欄參照或得出結果為字串的運算式myString1

match_threshold

用於識別門檻的字串常值,系統會使用這個門檻來根據輸入字串的 Double Metaphone 編碼決定是否相符。接受的值如下:

門檻值說明
'strong'兩個輸入字串的主要編碼必須相符。
'normal'(預設) 其中一個輸入字串的主要編碼必須與另一個輸入字串的任一編碼相符。
'weak'其中一個輸入字串的主要或次要編碼必須與另一個輸入字串的任一編碼相符。

使用須知:

是否必要?資料類型示例值
字串常值

'strong'

範例

範例:拼音字串比較

此範例說明下列 Double Metaphone 演算法函式如何在 Cloud Dataprep by TRIFACTA® 中作業。

  • DOUBLEMETAPHONE:計算輸入字串的主要及次要語音編碼,編碼會傳回雙元素陣列。詳情請參閱 DOUBLEMETAPHONE 函式
  • DOUBLEMETAPHONEQUALS:使用 Double Metaphone 演算法比較兩個輸入字串,如果語音相符,系統會傳回 true。詳情請參閱 DOUBLEMETAPHONEEQUALS 函式

來源:

下表含有待比較的字串範例。

string1string2附註
My Stringmy string系統進行比較時不區分大小寫
judgejuge錯字
knocknock不發音字母
whitewite字母缺失
recordrecord兩個不一樣的英文字串,但比對結果相符
pairpear比對結果相符,但是不同的字串
bookkeeperbook keeper空格會導致比較發生錯誤
test1test123系統不會比較數字
the end.the end….標點符號的差異沒有影響
a elephantan elephant系統會將 a 和 an 視為不同字串


轉換:

您可以使用 DOUBLEMETAPHONE 函式產生語音拼字,如下所示:

derive type: single value: DOUBLEMETAPHONE(string1) as: 'dblmeta_s1'

您可以使用 DOUBLEMETAPHONEEQUALS 函式比較 string1string2

derive type: single value: DOUBLEMETAPHONEEQUALS(string1, string2, 'normal') as: 'compare'

結果:

下表含有待比較的字串範例。

string1dblmeta_s1string2比較附註
My String["MSTRNK","MSTRNK"]my stringTRUE系統進行比較時不區分大小寫
judge["JJ","AJ"]jugeTRUE錯字
knock["NK","NK"]nockTRUE不發音字母
white["AT","AT"]witeTRUE字母缺失
record["RKRT","RKRT"]recordTRUE兩個不一樣的英文字串,但比對結果相符
pair["PR","PR"]pearTRUE比對結果相符,但是不同的字串
bookkeeper["PKPR","PKPR"]book keeperFALSE空格會導致比較發生錯誤
test1["TST","TST"]test123TRUE系統不會比較數字
the end.["0NT","TNT"]the end….TRUE標點符號的差異沒有影響
a elephant["ALFNT","ALFNT"]an elephantFALSE系統會將 a 和 an 視為不同字串

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Google Cloud Dataprep 說明文件
需要協助嗎?請前往我們的支援網頁