全部产品

PMI

更新时间:2019-06-05 10:19:40

  1. 互信息(Mutual Information)是信息论里一种有用的信息度量,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性。
  2. 本算法统计若干文章中所有词的共现情况,计算两两之间的PMI(point mutual information)。互信息定义为:

    PMI(x,y)=ln(p(x,y)/(p(x)p(y)))=ln(#(x,y)D/(#x#y))

  3. 其中,#(x,y)为pair(x,y)的count数,D为pair的总数。若x、y在同一个窗口出现,那么#x+=1; #y+=1;#(x,y)+=1。

PAI命令及说明

1. PAI命令

  1. PAI -name PointwiseMutualInformation
  2. -project algo_public
  3. -DinputTableName=maple_test_pmi_basic_input
  4. -DdocColName=doc
  5. -DoutputTableName=maple_test_pmi_basic_output
  6. -DminCount=0
  7. -DwindowSize=2
  8. -DcoreNum=1
  9. -DmemSizePerCore=110;

2. 参数说明

参数名称 参数描述 取值范围 是否必选,默认值
inputTableName 输入表 表名 必选
outputTableName 输出表 表名 必选
docColName 分词好的文档列名,分词用空格隔开 列名 必选
windowSize 窗口大小,例如5指当前词右边相邻的5个词(不包含当前词)。在窗口中出现的词被被认为与当前词相关。 [1, 句子长度] 可选,默认整行doc
minCount 截断的最小词频,出现次数少于该值的词会被过滤掉 [0, 2e63],正整数 可选,默认5
inputTablePartitions 输入表中指定哪些分区参与训练, 格式为: Partition_name=value. 如果是多级格式为name1=value1/name2=value2; 如果是指定多个分区, 中间用,分开 可选, 默认值选择所有分区
lifecycle 可选,指定输出表的生命周期 正整数 没有生命周期
coreNum 节点个数 与参数memSizePerCore配对使用,正整数,范围[1, 9999] 详细介绍 可选, 默认自动计算
memSizePerCore 单个节点内存大小,单位M 正整数,范围[1024, 64*1024] 详细介绍 可选, 默认自动计算

具体示例

  • 数据准备
  1. create table maple_test_pmi_basic_input as
  2. select * from
  3. (
  4. select "w1 w2 w3 w4 w5 w6 w7 w8 w8 w9" as doc from dual
  5. union all
  6. select "w1 w3 w5 w6 w9" as doc from dual
  7. union all
  8. select "w0" as doc from dual
  9. union all
  10. select "w0 w0" as doc from dual
  11. union all
  12. select "w9 w1 w9 w1 w9" as doc from dual
  13. )tmp;
doc:string
w1 w2 w3 w4 w5 w6 w7 w8 w8 w9
w1 w3 w5 w6 w9
w0
w0 w0
w9 w1 w9 w1 w9
  • PAI命令行
  1. PAI -name PointwiseMutualInformation
  2. -project algo_public
  3. -DinputTableName=maple_test_pmi_basic_input
  4. -DdocColName=doc
  5. -DoutputTableName=maple_test_pmi_basic_output
  6. -DminCount=0
  7. -DwindowSize=2
  8. -DcoreNum=1
  9. -DmemSizePerCore=110;
  • 输出表
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
w4 w6 4 7 1 0.13353139262452257
w5 w6 8 7 2 0.13353139262452257
w5 w7 8 4 1 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