Platform for AI (PAI) のPMIアルゴリズムコンポーネントは、いくつかのドキュメント内のすべての単語の共起をカウントし、ポイントごとの相互情報量 (PMI) を計算するために使用されます。 このトピックでは、PMIアルゴリズムコンポーネントを設定する方法について説明します。
背景情報
情報理論では、相互情報量 (MI) は、他の変数の確率変数に含まれる情報の量、または既知の確率変数による確率変数の不確実性の減少と見なすことができます。
PMIは、2つの単語間の関連性を定量化するために使用されます。 定義: PMI(x,y)=ln(p(x,y)/(p(x)p(y)))=ln(#(x,y)D/(#x#y))
。 定義において、#(x,y)
は、ペアの数 (x,y)
を示す。 Dはペアの総数を示す。 xとyが同じウィンドウに表示される場合、出力は #x +=1
、#y +=1
、#(x,y)+=1
です。 PMIの詳細については、「PMI」をご参照ください。
コンポーネントの設定
次のいずれかの方法を使用して、PMIコンポーネントを設定できます。
方法1: PAIコンソールでコンポーネントを設定する
Machine Learning Designerのパイプラインページで、PMIコンポーネントのパラメーターを設定できます。
タブ | パラメーター | 説明 |
フィールド設定 | スペースで区切られた単語を含むドキュメントの列 | N/A |
パラメーター設定 | 最小ワード | この値よりも少ない回数だけ現れるワードは、フィルタリングされる。 既定値:5 |
ウィンドウサイズ | ウィンドウのサイズ。 例えば、5の値は、現在のワードの右側にある5つの隣接ワードを示す。 ウィンドウに表示される単語は、現在の単語に関連していると見なされます。 | |
チューニング | コンピューティングコア | 計算に使用されるコアの数。 デフォルトでは、システムが値を決定します。 |
コアあたりのメモリサイズ (単位: MB) | 各コアのメモリサイズ。 デフォルトでは、システムが値を決定します。 |
方法2: PAIコマンドを使用してパラメータを設定する
次のセクションでは、パラメーターについて説明します。 SQLスクリプトを使用してPAIコマンドを呼び出すことができます。 詳細については、「SQLスクリプト」をご参照ください。
PAI -name PointwiseMutualInformation
-project algo_public
-DinputTableName=maple_test_pmi_basic_input
-DdocColName=doc
-DoutputTableName=maple_test_pmi_basic_output
-DminCount=0
-DwindowSize=2
-DcoreNum=1
-DmemSizePerCore=110;
パラメーター | 必須 | 説明 | デフォルト値 |
inputTableName | 可 | 入力テーブル | N/A |
outputTableName | 可 | 出力テーブル | N/A |
docColName | 可 | 単語がスペースで区切られている、単語分割後のドキュメント列の名前。 | N/A |
windowSize | 不可 | ウィンドウのサイズ。 例えば、5の値は、現在のワードの右側にある5つの隣接ワードを示す。 ウィンドウに表示される単語は、現在の単語に関連していると見なされます。 | 行のすべてのコンテンツ |
minCount | 不可 | 切り捨ての単語の最小頻度。 この値よりも低い回数だけ現れるワードは、フィルタリングされる。 | 5 |
inputTablePartitions | 不可 | トレーニング用に入力テーブルから選択されたパーティション。Partition_name=value形式です。 複数のパーティションを指定するには、name1=value1/name2=value2の形式を使用します。 複数のパーティションはコンマ (,) で区切ります。 | すべてのパーティション |
ライフサイクル | 不可 | 出力テーブルのライフサイクル。 | N/A |
coreNum | 不可 | 計算に使用されるコアの数。 有効な値: [1,9999] 。 | システムによって決定される |
memSizePerCore | 不可 | 各コアのメモリサイズ。 単位:MB。 有効な値: [1024,65536] 。 | システムによって決定される |
サンプルコマンド
入力
ODPS SQLノードを使用して、maple_test_pmi_basic_inputという名前のテーブルを作成します。 詳細については、「MaxCompute SQLタスクの開発」をご参照ください。 サンプルコマンド:
としてテーブルmaple_test_pmi_basic_inputを作成する
create table maple_test_pmi_basic_input as select * from ( select "w1 w2 w3 w4 w5 w6 w7 w8 w8 w9" as doc union all select "w1 w3 w5 w6 w9" as doc union all select "w0" as doc union all select "w0 w0" as doc union all select "w9 w1 w9 w1 w9" as doc )tmp;
コマンド実行後のmaple_test_pmi_basic_inputテーブルのサンプルデータ:
doc
w1 w2 w3 w4 w5 w6 w7 w8 w8 w9
w1 w3 w5 w6 w9
w0
w0 w0
w9 w1 w9 w1 w9
PAIコマンドを実行する
SQLスクリプトコンポーネントまたはODPS SQLノードを使用して、次のPAIコマンドを実行できます。
PAI -name PointwiseMutualInformation -project algo_public -DinputTableName=maple_test_pmi_basic_input -DdocColName=doc -DoutputTableName=maple_test_pmi_basic_output -DminCount=0 -DwindowSize=2 -DcoreNum=1 -DmemSizePerCore=110;
Output
サンプル出力テーブルmaple_test_pmi_basic_output:
word1
word2
word1_count
word2_count
co_occurrencies_count
pmi
w0
w0
2
2
1
2.0794415416798357
w1
w1
10
10
1
-1.1394342831883648
w1
w2
10
3
1
0.06453852113757116
w1
w3
10
7
2
-0.08961215868968704
w1
w5
10
8
1
-0.916290731874155
w1
w9
10
12
4
0.06453852113757116
w2
w3
3
7
1
0.4212134650763035
w2
w4
3
4
1
0.9808292530117262
w3
w4
7
4
1
0.13353139262452257
w3
w5
7
8
2
0.13353139262452257
w3
w6
7
7
1
-0.42608439531090014
w4
w5
4
8
1
0.0
w4
w6
4
7
1
0.13353139262452257
w5
w6
8
7
2
0.13353139262452257
w5
w7
8
4
1
0.0
w5
w9
8
12
1
-1.0986122886681098
w6
w7
7
4
1
0.13353139262452257
w6
w8
7
7
1
-0.42608439531090014
w6
w9
7
12
1
-0.9650808960435872
w7
w8
4
7
2
0.8266785731844679
w8
w8
7
7
1
-0.42608439531090014
w8
w9
7
12
2
-0.2719337154836418
w9
w9
12
12
2
-0.8109302162163288
関連ドキュメント
Machine Learning Designerコンポーネントの詳細については、「Machine Learning Designerの概要」をご参照ください。
Machine Learning Designerは、さまざまなプリセットアルゴリズムコンポーネントを提供します。 ビジネスシナリオに基づいて、データ処理用のコンポーネントを選択できます。 詳細については、「コンポーネントリファレンス: すべてのコンポーネントの概要」をご参照ください。