文档

词频统计

更新时间:

词频统计是指输入一些字符串(手动输入或者从指定的文件读取),用程序来统计这些字符串中总共有多少个单词,每个单词出现的次数。单词的总数(即为Total)为不重复的单词数总和。本文为您介绍Designer提供的词频统计。

词频指词的频率,即词在一定的语料中出现的次数。请在对文档进行分词的基础上,按行保序输出对应文档ID列(docId)对应的词,统计指定文档ID列对应文档内容(docContent)的词频。

组件配置

您可以使用以下任意一种方式,配置词频统计组件参数。

方式一:可视化方式

Designer工作流页面配置组件参数。

页签

参数

描述

字段设置

选择文档ID列

选择文档ID列。

选择文档内容列

选择文档内容列。

执行调优

核心数

节点数量。

每个核心的内存

单个节点内存大小,单位为MB。

方式二:PAI命令方式

使用PAI命令方式,配置该组件参数。您可以使用SQL脚本组件进行PAI命令调用,详情请参见SQL脚本

pai -name doc_word_stat
    -project algo_public
    -DinputTableName=tdl_doc_test_split_word
    -DdocId=docid
    -DdocContent=content
    -DoutputTableNameMulti=doc_test_stat_multi
    -DoutputTableNameTriple=doc_test_stat_triple
    -Dlifecycle=7

参数名称

是否必选

描述

默认值

inputTableName

输入表名称。

docId

标识文档ID的列名,仅可指定一列。

docContent

标识文档内容的列名,仅可指定一列。

outputTableNameMulti

输出保序词语表名。

outputTableNameTriple

输出词频统计表名。

inputTablePartitions

输入表中,参与训练的分区。系统支持以下格式:

  • Partition_name=value

  • name1=value1/name2=value2:多级分区

说明

指定多个分区时,分区之间使用英文逗号(,)分隔。

选择所有分区

lifecycle

输出表生命周期。正整数。

-1

示例

采用阿里分词实例数据中,将分别将输出表的两个列作为词频统计的输入参数:

  • 选择文档ID列:ID。

  • 选择文档内容列:text经过词频统计运算后,生成的结果见本组件中第一个输出参数展示图。

PAI命令行

pai -name doc_word_stat
    -project algo_public
    -DinputTableName=tdl_doc_test_split_word
    -DdocId=id
    -DdocContent=content
    -DoutputTableNameMulti=doc_test_stat_multi
    -DoutputTableNameTriple=doc_test_stat_triple
    -DinputTablePartitions="region=cctv_news"
    -Dlifecycle=7

输入参数:经过分词组件生成两列—文档ID列和分词后的文档内容列。

两个输出参数:

  • 第一个输出端:输出表包含idwordcount三个字段。1

    参数

    描述

    id

    文档ID列。

    word

    单词列。

    count

    统计每个文档中,对应word词汇出现的次数。

    说明

    该输出表的列可以分别作为TF-IDF组件的输入。

  • 第二个输出端:输出包含idword两个字段。2

    本端口输出表按词语在文档中出现的顺序依次输出,没有统计词语的出现次数,因此同一文档中某个词汇可能出现多条记录。该输出表格式主要用于兼容Word2Vec组件。

常见问题

  • 参数outputTableNameMulti指定的表是docId列及docId列对应的文档内容(docContent)完成分词后,按各个词语在文档中出现的顺序依次输出。

  • 参数outputTableNameTriple指定的表输出docId列及docId列对应的文档内容(docContent)。