字串相似性-topN演算法組件用於計算字串相似性,並篩選出最相似的Top N個資料。本文為您介紹字串相似性-topN演算法組件的配置方法。
組件配置
您可以使用以下任意一種方式,配置字串相似性-topN組件參數。
方式一:可視化方式
在Designer工作流程頁面配置組件參數。
頁簽 | 參數 | 描述 |
欄位設定 | 輸入表在輸出表追加的列名 | 輸入表中需要在輸出表中追加的列名。 |
映射表在輸出表追加的列名 | 映射表中需要在輸出表中追加的列名。 | |
相似性計算中左表的列名 | 在相似性計算中,左表的列名。 | |
相似性計算中映射表的列名 | 在相似性計算中,映射表的列名。左表中的每一行都會和映射表中所有的字串計算出相似性,並最終以Top N的方式輸出計算結果。 | |
輸出表中相似性列的列名 | 輸出表中相似性列的列名。列名中不能有特殊字元,只能使用英文a~z、A~Z、數字或底線(_),且以字母開頭,長度不超過128位元組。預設值為output。 | |
參數設定 | 最終給出的相似性最大值的個數 | 輸出Top相似性的個數。取值範圍為正整數,預設值為10。 |
相似性計算方法 | 指定相似性計算方法類型。取值範圍為:
| |
子串的長度 | 僅當相似性計算方法取值為ssk、cosine或simhash_hamming_sim時,才需要配置該參數。取值範圍為(0,100)。預設值為2。 | |
匹配字串的權重 | 僅當相似性計算方法取值為ssk或simhash_hamming_sim時,才需要配置該參數。取值範圍為(0,1)。預設值為0.5。 | |
執行調優 | 計算的核心數 | 預設為系統自動分配。 |
每個核心的記憶體(MB) | 預設為系統自動分配。 |
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
PAI -name string_similarity_topn
-project algo_public
-DinputTableName="pai_test_string_similarity_topn"
-DoutputTableName="pai_test_string_similarity_topn_output"
-DmapTableName="pai_test_string_similarity_map_topn"
-DinputSelectedColName="col0"
-DmapSelectedColName="col1";
參數名稱 | 是否必選 | 描述 | 預設值 |
inputTableName | 是 | 輸入表的名稱。 | 無 |
mapTableName | 是 | 映射表的名稱。 | 無 |
是 | 輸出表的名稱。 | 無 | |
inputSelectedColName1 | 否 | 在相似性計算中,左表的列名。 | 表中第一個STRING類型的列名 |
inputSelectedColName2 | 否 | 在相似性計算中,映射表的列名。 | 表中第一個STRING類型的列名 |
inputAppendColNames | 否 | 輸入表中需要在輸出表追加的列名。 | 無 |
inputAppendRenameColNames | 否 | 輸入表中需要在輸出表追加的列名的別名。 | 無 |
mapSelectedColName | 是 | 相似性計算中字典表的列名。 | 無 |
mapAppendColNames | 否 | 映射表中需要在輸出表追加的列名。 | 無 |
mapAppendRenameColNames | 否 | 映射表中需要在輸出表追加的列名的別名。 | 無 |
inputTablePartitions | 否 | 輸入表的分區名稱。 | 所有分區 |
mapTablePartitions | 否 | 映射表的分區名稱。 | 所有分區 |
outputColName | 否 | 輸出表中相似性列的列名。列名中不能有特殊字元,只能使用英文a~z,A~Z、數字或底線(_),且以字母開頭,長度不超過128位元組。 | output |
method | 否 | 相似性計算方法類型。取值範圍為:
| levenshtein_sim |
lambda | 否 | 僅當相似性計算方法取值為ssk或simhash_hamming_sim時,才需要配置該參數。取值範圍為(0,1)。 | 0.5 |
k | 否 | 僅當相似性計算方法取值為ssk、cosine或simhash_hamming_sim時,才需要配置該參數。取值範圍為(0,100)。 | 2 |
lifecycle | 否 | 輸出表的生命週期。取值範圍為正整數。 | 無 |
coreNum | 否 | 計算的核心數。 | 系統自動分配 |
memSizePerCore | 否 | 每個核心的記憶體數。 | 系統自動分配 |
資源使用及費用預估
由於string_similarity_topn是一個M*N計算複雜度的演算法(在M條記錄中為N條記錄找到最接近的字串,需要計算兩兩樣本的距離,因此需要計算M*N次),因此運行該演算法時申請使用的資源和M*N成正比關係。
如果要在M條記錄中為N條記錄找到距離最近的記錄,則申請的worker數量為M*N/(1024*1024*32),最大為1000;每個worker的記憶體為N/8 MB,取值範圍為4~64 GB;按照計量模型的一個CU提供4 GB記憶體來計算,該演算法最大CU申請量為1000*64/4=16000 CU。
相關文檔
關於Designer更詳細的內容介紹,請參見Designer概述。
您可以在資訊檢索、自然語言處理和生物資訊學等領域,使用字串相似性組件來計算字串相似性。關於該組件的使用詳情,請參見字串相似性。