「文字列類似度 - Top N」コンポーネントは、文字列間の類似度を計算し、最も類似した上位 N 件のデータレコードを返します。本トピックでは、このコンポーネントの設定方法について説明します。
コンポーネントの構成
「文字列類似度 - Top N」コンポーネントは、以下のいずれかの方法で設定できます。
方法 1:GUI を使用する
コンポーネントのパラメーターは、Designer のワークフローページで設定できます。
|
タブ |
パラメーター |
説明 |
|
フィールド設定 |
入力テーブルから出力テーブルに追加する列 |
入力テーブルから出力テーブルに追加する列を指定します。 |
|
マッピングテーブルから出力テーブルに追加する列 |
マッピングテーブルから出力テーブルに追加する列を指定します。 |
|
|
類似度計算用の左側テーブルの列 |
類似度計算に使用する左側テーブルの列を指定します。 |
|
|
類似度計算用のマッピングテーブルの列 |
類似度計算に使用するマッピングテーブルの列を指定します。コンポーネントは、左側テーブルの各行とマッピングテーブル内のすべての文字列との類似度を計算し、上位 N 件の結果を返します。 |
|
|
出力テーブルにおける類似度列の名前 |
出力テーブルにおける類似度列の名前を指定します。名前には特殊文字を含めることはできません。英字(a–z、A–Z)、数字、およびアンダースコア(_)のみ使用可能です。先頭文字は英字である必要があります。最大長は 128 バイトです。デフォルト値は output です。 |
|
|
パラメーター設定 |
上位 N 件の類似度値の数 |
返す上位 N 件の類似度値の数を指定します。この値は正の整数である必要があります。デフォルト値は 10 です。 |
|
類似度計算方法 |
類似度計算に使用するメソッドを指定します。有効な値は以下のとおりです。
|
|
|
部分文字列の長さ |
このパラメーターは、類似度計算方法 を ssk、cosine、または simhash_hamming_sim に設定した場合にのみ必須です。(0, 100) の範囲内の値を指定してください。デフォルト値は 2 です。 |
|
|
一致文字列の重み |
このパラメーターは、類似度計算方法 を ssk または simhash_hamming_sim に設定した場合にのみ必須です。(0, 1) の範囲内の値を指定してください。デフォルト値は 0.5 です。 |
|
|
実行チューニング |
コア数 |
デフォルトで自動的に割り当てられます。 |
|
コアあたりのメモリ量(MB) |
デフォルトでは、システムが自動的に割り当てます。 |
方法 2: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 件のレコードに対する最も近いレコードを検索する場合、必要なワーカー数は (M × N) / (1024 × 1024 × 32) であり、最大で 1,000 となります。各ワーカーのメモリ量は N/8 MB で、4 GB ~ 64 GB の範囲です。課金モデル によると、1 つのコンピューティングユニット(CU)は 4 GB のメモリを提供します。したがって、このアルゴリズムで要求可能な最大 CU 数は 1,000 × 64 / 4 = 16,000 CU です。
参考資料
-
Designer の詳細については、「Designer の概要」をご参照ください。
-
「文字列類似度」コンポーネントは、情報取得、自然言語処理(Natural Language Processing)、バイオインフォマティクスなど、さまざまな用途で文字列類似度を計算します。「文字列類似度」コンポーネントの詳細については、「文字列類似度」をご参照ください。