全部產品
Search
文件中心

Platform For AI:PMI

更新時間:Jul 13, 2024

PMI演算法組件用來統計若干文章中所有詞的共現情況,計算兩兩之間的PMI(point mutual information)。本文為您介紹PMI演算法組件的配置方法。

背景資訊

互資訊(Mutual Information)是資訊理論裡一種有用的資訊度量,它可以看成是一個隨機變數中包含的另一個隨機變數的資訊量,或者說是一個隨機變數由於已知另一個隨機變數而減少的不確定性。

PMI用來量化兩個詞之間的相關性,定義為:PMI(x,y)=ln(p(x,y)/(p(x)p(y)))=ln(#(x,y)D/(#x#y))。其中,#(x,y)pair(x,y)的count數,D為pair的總數。若x、y在同一個視窗出現,則#x+=1 #y+=1#(x,y)+=1。瞭解更多PMI的資訊,請參見PMI

組件配置

您可以使用以下任意一種方式,配置PMI組件參數。

方式一:可視化方式

Designer工作流程頁面配置組件參數。

頁簽

參數

描述

欄位設定

分詞好的文檔列名,分詞用空格隔開

參數設定

截斷的最小詞頻

出現次數少於該值的詞會被過濾掉。預設值為5。

視窗大小

例如5指當前詞右邊相鄰的5個詞(不包含當前詞)。在視窗中出現的詞被認為與當前詞相關。

執行調優

計算的核心數

系統自動選擇。

每個核心的記憶體(MB)

系統自動選擇。

方式二:PAI命令方式

使用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

輸入表

outputTableName

輸出表

docColName

分詞好的文檔列名,分詞用空格隔開。

windowSize

視窗大小。例如5指當前詞右邊相鄰的5個詞(不包含當前詞)。在視窗中出現的詞被認為與當前詞相關。

預設整行內容

minCount

截斷的最小詞頻,出現次數少於該值的詞會被過濾掉。

5

inputTablePartitions

輸入表中指定哪些分區參與訓練,格式為:Partition_name=value。如果是多級格式為name1=value1/name2=value2。如果指定多個分區,中間用“,”隔開。

選擇所有分區

lifecycle

指定輸出表的生命週期

coreNum

節點個數,取值範圍為[1,9999]。

自動計算

memSizePerCore

單個節點記憶體大小,單位為MB,取值範圍為[1024,64*1024]。

自動計算

樣本

  • 產生資料

    使用開發ODPS 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指令碼執行如下PAI命令,也可以使用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;
  • 輸出結果

    輸出表maple_test_pmi_basic_output ,如下所示。

    word1

    word2

    word1_count

    word2_count

    co_occurrences_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

相關文檔

  • 關於Designer組件更詳細的內容介紹,請參見Designer概述

  • Designer預置了多種演算法組件,你可以根據不同的使用情境選擇合適的組件進行資料處理,詳情請參見組件參考:所有組件匯總