すべてのプロダクト
Search
ドキュメントセンター

Platform For AI:文字列類似度 - Top N

最終更新日:Mar 06, 2026

「文字列類似度 - Top N」コンポーネントは、文字列間の類似度を計算し、最も類似した上位 N 件のデータレコードを返します。本トピックでは、このコンポーネントの設定方法について説明します。

コンポーネントの構成

「文字列類似度 - Top N」コンポーネントは、以下のいずれかの方法で設定できます。

方法 1:GUI を使用する

コンポーネントのパラメーターは、Designer のワークフローページで設定できます。

タブ

パラメーター

説明

フィールド設定

入力テーブルから出力テーブルに追加する列

入力テーブルから出力テーブルに追加する列を指定します。

マッピングテーブルから出力テーブルに追加する列

マッピングテーブルから出力テーブルに追加する列を指定します。

類似度計算用の左側テーブルの列

類似度計算に使用する左側テーブルの列を指定します。

類似度計算用のマッピングテーブルの列

類似度計算に使用するマッピングテーブルの列を指定します。コンポーネントは、左側テーブルの各行とマッピングテーブル内のすべての文字列との類似度を計算し、上位 N 件の結果を返します。

出力テーブルにおける類似度列の名前

出力テーブルにおける類似度列の名前を指定します。名前には特殊文字を含めることはできません。英字(a–z、A–Z)、数字、およびアンダースコア(_)のみ使用可能です。先頭文字は英字である必要があります。最大長は 128 バイトです。デフォルト値は output です。

パラメーター設定

上位 N 件の類似度値の数

返す上位 N 件の類似度値の数を指定します。この値は正の整数である必要があります。デフォルト値は 10 です。

類似度計算方法

類似度計算に使用するメソッドを指定します。有効な値は以下のとおりです。

  • levenshtein_sim(デフォルト)

  • lcs_sim

  • ssk

  • cosine

  • simhash_hamming_sim

部分文字列の長さ

このパラメーターは、類似度計算方法 を 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

  • lcs_sim

  • ssk

  • cosine

  • simhash_hamming_sim

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)、バイオインフォマティクスなど、さまざまな用途で文字列類似度を計算します。「文字列類似度」コンポーネントの詳細については、「文字列類似度」をご参照ください。