文字列類似性計算は、情報検索、自然言語処理、バイオインフォマティクスなどの業界で一般的に使用されている基本的な機械学習操作です。 このトピックでは、Platform for AI (PAI) で文字列類似性アルゴリズムコンポーネントを設定する方法について説明します。
背景情報
このコンポーネントは、Levenshtein (Levenshtein Distance) 、Longest Common SubString (LCS) 、String Subsequence Kernel (SSK) 、Cosine (Cosine) 、およびSimHash_Hammingの5つの計算方法をサポートしています。 入力データは2つの列に分配され、一方の列の値を使用して他方の列の値を計算することができる。
レーベンシュタイン法は、距離と類似度の計算をサポートします。
距離はlevenshteinパラメーターで指定します。
類似度は、以下の式を使用することによって計算される。 類似度は、levenshtein_simパラメーターで指定します。
LCS法は、距離および類似度の計算をサポートする。
距離はlcsパラメーターで指定します。
類似度は、以下の式を使用することによって計算される。 類似度は、lcs_simパラメータによって指定される。
SSKメソッドは、sskパラメーターで指定される類似度計算をサポートします。
Cosineは、cosineパラメーターで指定される類似度計算をサポートします。
Simhash_Hammingでは、SimHashアルゴリズムを使用して、元のドキュメントを64ビットのバイナリ指紋にマッピングします。 ハミング距離は、同じ位置にあるバイナリ指紋の文字数を計算するために使用されます。 Simhash_Hammingメソッドは、距離と類似度の計算をサポートします。
距離は、simhash_hammingパラメーターで指定します。
類似度は、以下の式を使用することによって計算される。類似度=1 − 距離 /64.0。 類似度は、simhash_hamming_simパラメーターで指定します。
コンポーネントの設定
次のいずれかの方法を使用して、String Similarityコンポーネントのパラメーターを設定できます。
方法1: PAIコンソールでコンポーネントを設定する
Machine Learning DesignerでString Similarityコンポーネントのパラメーターを設定できます。 下表に、各パラメーターを説明します。
タブ | パラメーター | 説明 |
フィールド設定 | 追加された列出力テーブル | 指定された出力テーブルに追加された列。 |
類似度計算の最初の列 | デフォルト値は、入力テーブルの最初のSTRING列です。 | |
2列目の類似度計算 | デフォルト値は、入力テーブルの2番目のSTRING列です。 | |
出力テーブルの類似列 | 指定された出力テーブルの類似度列。 | |
パラメーター設定 | 類似度の計算方法 | 類似度の計算に使用されるメソッド。 有効な値:
デフォルト値: levenshtein_sim。 |
サブ文字列の長さ | このパラメーターは、Similarity Calculation Methodパラメーターがssk、Cosine、simhash_hamming、またはsimhash_hamming_simに設定されている場合にのみ必要です。 有効値: (0,100) デフォルト値:2 | |
マッチング文字列の重み | このパラメーターは、methodパラメーターがssk、cosine、またはsimhash_hamming_simに設定されている場合にのみ必要です。 有効値: (0,1) デフォルト値: 0.5 | |
実行チューニング | コンピューティングコア数 | コンピューティングコアの数。 デフォルトでは、システムが値を決定します。 |
コアあたりのメモリサイズ (MB) | 各コアのメモリサイズ。 デフォルトでは、システムが値を決定します。 |
方法2: PAIコマンドを使用してコンポーネントを構成する
PAIコマンドを使用してコンポーネントパラメータを設定します。 次のセクションでは、パラメーターについて説明します。 SQLスクリプトを使用してPAIコマンドを呼び出すことができます。 詳細については、「SQLスクリプト」をご参照ください。
PAI -name string_similarity
-project algo_public
-DinputTableName="pai_test_string_similarity"
-DoutputTableName="pai_test_string_similarity_output"
-DinputSelectedColName1="col0"
-DinputSelectedColName2="col1";
パラメーター | 必須 | 説明 | デフォルト値 |
inputTableName | 可 | 入力テーブルの名前。 | N/A |
outputTableName | 可 | 出力テーブルの名前。 | N/A |
inputSelectedColName1 | 不可 | 類似度計算の最初の列。 | 左側のテーブルのSTRING型の最初の列の名前 |
inputSelectedColName2 | 不可 | 類似度計算の2番目の列。 | 入力テーブルの2番目のSTRING列 |
inputAppendColNames | 不可 | 出力テーブルに追加される列。 | N/A |
inputTablePartitions | 不可 | 入力テーブルのパーティション。 | すべてのパーティション |
outputColName | 不可 | 出力テーブルの類似度列の名前。 値に特殊文字を含めることはできません。 文字、数字、またはアンダースコア (_) のみを使用できます。先頭は文字で、長さは最大128バイトです。 | アウトプット |
メソッド | 不可 | 類似度の計算に使用されるメソッド。 有効な値:
| levenshtein_sim |
ラムダ | 不可 | このパラメーターは、Methodパラメーターがsskに設定されている場合にのみ必要です。 有効値: (0,1) | 0.5 |
k | 不可 | このパラメーターは、Methodパラメーターがssk、cosine、simhash_hamming、またはsimhash_hamming_simに設定されている場合にのみ必要です。 有効値: (0,100) | 2 |
ライフサイクル | 不可 | 出力テーブルのライフサイクル。 値は正の整数でなければなりません。 | N/A |
coreNum | 不可 | コンピューティングで使用されるコアの数。 | 自動割り当て |
memSizePerCore | 不可 | 各コアのメモリサイズ。 | 自動割り当て |
関連ドキュメント
Machine Learning Designerの詳細については、「Machine Learning Designerの概要」をご参照ください。
String Similarity - top Nコンポーネントを使用して、文字列の類似度を計算し、マッピングテーブルに最も一致する上位N個のデータレコードを取得することもできます。 このコンポーネントの使用方法については、「String Similarity - top N」をご参照ください。