本文為您介紹Designer提供的語義向量距離演算法組件。
基於演算法語義向量結果(如Word2Vec產生的詞向量),計算給定的詞(或者句子)的擴充詞(或者擴充句),即計算其中某一向量距離最近的向量集合。其中一個用法是,基於Word2Vec產生的詞向量結果,根據輸入的詞返回最為相似的詞列表。
組件配置
您可以使用以下任意一種方式,配置語義向量距離組件參數。
方式一:可視化方式
在Designer工作流程頁面配置組件參數。
頁簽 | 參數 | 描述 |
欄位設定 | id所在列名 | 輸入其唯一識別欄位ID所在列名。預設為空白,即輸入表中的所有向量參與計算。 輸入連接埠2的id列表格式為一列,每一行一個ID。例如:
|
向量的列名列表 | 如f1,f2。 | |
參數設定 | 輸出的距離最近的向量的數目 | 預設值為5。 |
距離的計算方式 | 支援如下計算方式:
預設值為euclidean。 | |
距離的閾值 | 當兩個向量的距離小於此值時輸出,預設值為+∞。 | |
執行調優 | 計算的核心數 | 預設自動分配。 |
每個核心的記憶體(MB) | 預設自動分配。 |
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
PAI -name SemanticVectorDistance
-project algo_public
-DinputTableName="test_input"
-DoutputTableName="test_output"
-DidColName="word"
-DvectorColNames="f0,f1,f2,f3,f4,f5"
-Dlifecycle=30
參數名稱 | 是否必選 | 描述 | 預設值 |
inputTableName | 是 | 輸入表名。 | 無 |
inputTablePartitions | 否 | 輸入表中指定參與計算的分區。 | 輸入表的所有分區 |
outputTableName | 是 | 輸出表名。 | 無 |
idTableName | 否 | 需要計算相近向量的ID的列表所在表名。格式為一列,每一行一個ID。預設為空白,即輸入表中的所有向量參與計算。 | 無 |
idTablePartitions | 否 | ID表中參與計算的分區列表,預設為所有分區。 | 無 |
idColName | 是 | ID所在列名。 | 3 |
vectorColNames | 否 | 向量的列名列表,如f1,f2。 | 無 |
topN | 否 | 輸出的距離最近的向量的數目。取值範圍[1,+∞]。 | 5 |
distanceType | 否 | 距離的計算方式。 | euclidean |
distanceThreshold | 否 | 距離的閾值。當兩個向量的距離小於此值時輸出。取值範圍(0,+∞)。 | +∞ |
lifecycle | 否 | 輸入出表的生命週期,取值為正整數。 | 無 |
coreNum | 否 | 參與計算的核心數,取值為正整數。 | 系統自動計算 |
memSizePerCore | 否 | 每個核心需要的記憶體,取值為正整數。 | 系統自動計算 |
樣本
輸出表為四列,分別是original_id、near_id、distance、rank。
original_id | near_id | distance | rank |
hello | hi | 0.2 | 1 |
hello | xxx | xx | 2 |
Man | Woman | 0.3 | 1 |
Man | xx | xx | 2 |