全部产品

PLDA

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

主题模型:返回文档对应的主题LDA(Latent Dirichlet allocation),是一种主题模型,它可以将文档集中每篇文档的主题按照概率分布的形式给出。同时它是一种无监督学习算法,在训练时不需要手工标注的训练集,需要的仅仅是文档集以及指定主题的数量k即可。

LDA首先由David M. Blei、Andrew Y. Ng和Michael I. Jordan于2003年提出,目前在文本挖掘领域包括文本主题识别、文本分类以及文本相似度计算方面都有应用。

组件配置

参数说明

  1. 主题个数: 设置LDA的输出的主题个数
  2. Alpha:P(z/d)的先验狄利克雷分布的参数
  3. beta: P(w/z)的先验狄利克雷分布的参数
  4. burn In:burn in 迭代次数,必须小于总迭代次数,默认值:100
  5. 总迭代次数: 正整数 | 非必选,默认值:150注:z是主题, w是词, d是文档

输入输出设置

  1. 输入:数据必须为稀疏矩阵的格式(格式见数据格式说明章节)。目前需要用户自己写一个MR,实现数据的转换输入格式如下:第一列:docid; 第二列:单词及词频的kv数据

  2. 输出依次为: ·topic-word频率贡献表 ·单词|主题输出表 ·主题|单词输出表 ·文档|主题输出表 ·主题|文档输出表 ·主题输出表

topic-word频率贡献表的输出格式如下:

PAI命令及说明

1. PAI命令

  1. pai -name PLDA
  2. -project algo_public
  3. -DinputTableName=lda_input
  4. DtopicNum=10
  5. -topicWordTableName=lda_output;

2. 参数说明

参数key名称 参数描述 取值范围 是否必选,默认值/行为
inputTableName 输入表名 表名 必选
inputTablePartitions 输入表中指定参与分词的分区名 格式为: partition_name=value。如果是多级格式为name1=value1/name2=value2;如果是指定多个分区,中间用’,’分开 非必选,默认值:输入表的所有partition
selectedColNames 输入表中用于LDA的列名 列名,逗号分隔 非必选,默认值:输入表中所有的列名
topicNum topic的数量 [2, 500] 必选
kvDelimiter key和value间的分分隔符 空格、逗号、冒号 非必选,默认值:冒号
itemDelimiter key和key间的分隔符 空格、逗号、冒号 非必选,默认值:空格
alpha P(z/d)的先验狄利克雷分布的参数 (0, ∞) 非必选,默认值:0.1
beta P(w/z)的先验狄利克雷分布的参数 (0, ∞) 非必选,默认值:0.01
topicWordTableName topic-word频率贡献表 表名 必选
pwzTableName P(w/z)输出表 表名 非必选,默认行为:不输出P(w/z)表
pzwTableName P(z/w)输出表 表名 非必选,默认行为:不输出P(z/w)表
pdzTableName P(d/z)输出表 表名 非必选,默认行为:不输出P(d/z)表
pzdTableName P(z/d)输出表 表名 非必选,默认行为:不输出P(z/d)表
pzTableName P(z)输出表 表名 非必选,默认行为:不输出P(z)表
burnInIterations burn in 迭代次数 正整数 非必选,必须小于totalIterations,默认值:100
totalIterations 迭代次数 正整数 非必选,默认值:150
enableSparse 是否是kv输入,选择kv输入或分词结果 true, false 非必选,默认值:是kv输入
coreNum 核心个数 正整数 可选,默认自动分配
memSizePerCore 单个核心使用的内存数,1000代表1GB内存 正整数 可选,默认自动分配

注:z是主题, w是词, d是文档