本文通过PAI提供的文本分析组件,实现简单的商品标签自动归类系统。

背景信息

通常每件商品的描述会包含很多维度标签。例如,一双鞋子的商品描述可能是“韩都少女英伦风系带马丁靴女磨砂真皮厚底休闲短靴”。一个包的商品描述可能是“天天特价包包2016新款秋冬斜挎包韩版手提包流苏贝壳包女包单肩包”。这些维度可以包含时间、产地及款式等,如何按照特定维度将数以万计的商品进行归类是电商平台的难题之一,其中最大的挑战是如何从商品描述中抽取维度标签。PAI提供的文本分析组件可以自动学习标签词语,从而实现标签自动归类。

数据集

本实验数据是整理的一份2016年双十一购物清单,共两千多条商品描述,每一行表示一件商品的标签聚合,如下图所示。标签自动归类数据集

相似标签自动归类

  1. 进入PAI-Studio控制台。
    1. 登录PAI控制台
    2. 在左侧导航栏,选择模型开发和训练 > Studio-可视化建模
    3. PAI可视化建模页面,单击进入机器学习进入机器学习
  2. 创建空白实验。
    1. 在左侧导航栏,单击首页
    2. 单击新建实验 > 新建空白实验
    3. 新建实验对话框,配置参数。
      参数 描述
      名称 输入相似标签自动归类
      项目 不支持修改。
      描述 输入使用PAI提供的文本分析组件,实现相似标签自动归类
      位置 选择我的实验
    4. 单击确定
  3. 构建实验流程并运行。
    1. 在左侧导航栏,单击组件
    2. 在组件列表,将源/目标下的读数据表组件拖入画布中,并重命名为shopping_data-1
    3. 在组件列表,将文本分析下的Split Word词频统计Word2Vec组件拖入画布中。
    4. 在组件列表,将数据预处理 > 数据合并下的增加序列号类型转换组件拖入画布中。
    5. 在组件列表,将机器学习 > 聚类下的K均值聚类组件拖入画布中。
    6. 在组件列表,将工具下的SQL脚本组件拖入画布中,
    7. 将以上组件拼接为如下实验,并运行。
      相似标签自动归类实验
      序号 描述
      上传shopping_data数据,并通过分词组件对数据进行分词。
      增加序列号。由于上传的数据只有一个字段,需要通过增加序号列为每个数据增加主键。处理后的数据如下图所示。序列化结果
      统计词频,展示每个商品中出现的各种词语数量。
      使用Word2Vector组件将每个词语按照意义在向量维度展开,生成词向量。词向量的含义包括:
      • 向量距离近的两个词,其真实含义比较相近。
      • 不同词之间的距离差值具有一定意义。
      经过Word2Vector组件将每个词映射到百维空间上,结果如下图所示。word2vector算法结果
      词向量聚类。使用K均值聚类算法,在已经产生的词向量基础上,计算词向量的距离,并按照意义将标签词自动归类。其结果展示每个词所属的聚类簇,如下图所示。K均值聚类结果
      结果验证。通过SQL组件,在聚类簇中随意挑选一个类别,判断是否对同一类别的标签进行了自动归类。本实验选用第10组聚类簇,如下图所示。结果验证SQL结果如下图所示。结果验证结果上述结果中,系统自动将与地理相关的标签进行了归类,但是混入了坚果等明显与类别不符的标签,可能是训练样本数量不足导致的。如果训练样本足够大,则标签聚类结果会非常准确。