机器学习实现海量新闻自动分类
通过最佳实践帮助您实现上述案例效果
Step1:数据导入MaxCompute 1.1 创建需要上传的本地数据
新闻文本表:
字段名 | 含义 | 类型 | 描述 |
category | 新闻类型 | string | 体育、女性、社会、军事、科技等 |
title | 标题 | string | 新闻标题 |
content | 内容 | string | 新闻内容 |
stop_words表:
字段名 | 含义 | 类型 | 描述 |
point | 用户名 | string | 人 |
stop_words | 标点符号 | string | " " ,等 |
1.2 创建MaxCompute表
1.2.1 开通MaxCompute
阿里云实名认证账号访问https://www.aliyun.com/product/odps ,开通MaxCompute,选择按量付费进行购买。
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/2ee2c2f5ec104d49ac0acda32004c7b5.jpg)
文章图片
步骤3: 创建MaxCompute表。进入大数据开发套件的数据开发页面
以开发者身份进入阿里云数加平台>大数据开发套件>管理控制台,点击对应项目操作栏中的进入工作区
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/ae2576e0596f4e218f69782148d51629.jpg)
文章图片
1.2.3 创建表
点击菜单数据管理,右上新建表
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/e73ab354e08a404da56b9d0229b392b7.jpg)
文章图片
1.2.4 填写信息配置
在新建表页面中填写基础信息的各配置项,点击下一步
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/1d381159460342368848766d5c40d5d7.png)
文章图片
在新建表页面中填写字段和分区信息的各配置项
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/295356e427184c968d505782c683cf87.png)
文章图片
1.2.5 点击提交
新建表提交成功后,系统将自动跳转返回数据表管理界面,点击我管理的表即可看到新建表
1.3 导入本地文件
进入大数据开发套件控制台,点击对应项目的进入工作区,点击菜单数据开发-->导入-->导入本地数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/cdccf0a532844ecbb1d26ae6ee252871.jpg)
文章图片
选择目标表,并选择字段匹配方式,点击导入
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/e42deef032e64438a7405f22f9809d59.png)
文章图片
文件导入成功后,系统右上角将提示文件导入成功,同时可以执行select语句查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/c720b1f0571d450f84e06bee4cd4325f.png)
文章图片
同样方法创建stop_words表
注意:如果原始字符集设GBK中文出现乱码,可改为UTF-8
Step2:机器学习中的数据准备 进入机器学习管理控制台,点击对应项目的进入机器学习
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/2ec75ecffa234f26b242f4c25f216793.jpg)
文章图片
选择需要的租户及工作空间,点击“提交”
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/895e8528126441bead5f05ca28a9a8ad.png)
文章图片
进入机器学习页面后,右击我的实验点击新建空白实验,输入实验名和实验描述
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/87019a05e8094a24b7345920451f3401.png)
文章图片
切换到组件栏,向画布中拖入读数据表,点击读数据表,在右侧表选择栏填入你的MaxCompute表
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/469c38363c484bfc969ed3227c8411e8.jpg)
文章图片
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/5b4be0656aa84eab9f6754e723d3ee46.jpg)
文章图片
切换到字段信息栏,可以查看输入表的字段名、数据类型和前100行数据的数值分布
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/aca27cb68ce34e7b8949f2976d35de3a.png)
文章图片
Step3:数据探索流程 实验流程图:
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/dde952e069bd4c6da8ed3e1a72f0870d.jpg)
文章图片
3.1 增加序号列
本文的数据源输入是以单个新闻为单元,需要增加ID列来作为每篇新闻的唯一标识,方便下面的算法进行计算。
3.1.1 增加序列号
切换至组件栏,向画布中拖入数据合并-->增加序号列,将nlp_use源表的输出与增加序号列连接,点击增加序号列,在右侧字段设置中进行填写
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/a836a9d581184cf589b206e5fe3164e1.jpg)
文章图片
右击增加序列号点击执行后,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/1563c15243184c66b427b478904f93a6.jpg)
文章图片
3.1.2 类型转换
向画布中拖入数据合并-->类型转换,将增加序号列输入到类型转换中,点击类型转换,在右侧选择字段
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/15db7bbd917642e5b6afbfa6aaf71ca0.jpg)
文章图片
右击类型转换点击执行后,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/271cc2e275b249f5b1a8013443f243a0.png)
文章图片
3.2 分词及词频统计
这两步都是文本挖掘领域最常规的做法,首先利用分词控件对于content字段,也就是新闻内容进行分词。去除过滤词之后(过滤词一般是标点符号及助语),对于词频进行统计。
3.2.1 分词
切换至组件栏,向画布中拖入文本分析-->Split Word,将类型转换的输出连接到Split Word的输入数据表中,点击Split Word,在右侧设置字段
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/c7f41213acbb4424878c49ea596032ff.png)
文章图片
右击Split Word点击执行后,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/fb9bd7e648ea4709a58f6a46b38685e1.png)
文章图片
3.2.2 词频统计
切换至组件栏,向画布中拖入文本分析-->词频统计
3.3 停用词过滤
停用词过滤功能用于过滤输入的停用词词库,一般过滤标点符号以及对于文章影响较少的助语等。
3.3.1 添加读数据表
切换到组件栏,向画布中拖入读数据表,点击读数据表,在右侧表选择栏填入你的MaxCompute表
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/8fbd078196c6472ab82f1c90dc3a5e43.png)
文章图片
右击读数据表点击执行,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/6a86af523e814f7d8d3a4dd747de8d1b.png)
文章图片
3.3.2 停用词过滤
切换至组件栏,向画布中拖入文本分析-->停用词过滤,将Split Word的输出和stop_words源表的输出分别与停用词过滤进行连接,点击停用词过滤,在右侧选择字段
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/38980939c5654b3bb5f36f48a9b5b19a.jpg)
文章图片
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/23ee26dd16de44e4a071238302270e26.jpg)
文章图片
右击停用词过滤点击执行,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/e5182b1cda814009820d9d72b4f18a2f.png)
文章图片
3.3.3 词频统计
向画布中拖入文本分析-->词频统计,将停用词过滤的输出表与词频统计连接,在右侧设置字段
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/7fe8f5e557724bb1a96c5e4210a5e6f1.jpg)
文章图片
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/f4f3e225574f4c139a63403d40e1f654.png)
文章图片
右击词频统计点击执行,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/1916cc4e495040a995daefbe7d01cb8c.png)
文章图片
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/5f7ea66429734f43b0dc3232ed46d7a5.png)
文章图片
3.4 文本主题挖掘
使用PLDA文本挖掘组件需要先将文本转换成三元形式,append_id是每篇新闻的唯一标识,key_value字段中冒号前面的数字表示的是单词抽象成的数字标识,冒号后面是对应的单词出现的频率。
3.4.1 三元组转kv
切换至组件栏,向画布中拖入文本分析-->三元组转kv,将词频统计的三元组输出与三元组转kv的输入表连接,点击三元组转kv,在右侧设置字段
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/eff18ce2ad994287aa2929414b3d6b1b.jpg)
文章图片
右击三元组转kv点击执行,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/d54da3da596a461da16af6e4ba17bde2.png)
文章图片
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/998bed1a20054dddaae2e229c875b678.png)
文章图片
3.4.2 PLDA
在上一步完成了文本转数字的过程,下一步数据进入PLDA算法。PLDA算法又叫主题模型,算法可以定位代表每篇文章的主题的词语。本次试验设置了50个主题,PLDA有六个输出桩,第五个输出桩输出结果显示的是每篇文章对应的每个主题的概率。
切换至组件栏,向画布中拖入文本分析-->PLDA,将三元组转kv的输出表与PLDA连接,点击PLDA,在右侧进行字段和参数设置
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/0acc9d439d3542909afa668710770f64.jpg)
文章图片
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/b27fcaea599545e89fef066529ac6900.png)
文章图片
右击PLDA点击执行后,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/d969388e8f3846adb8512d35ed9a2b4c.png)
文章图片
3.4.3 SQL脚本
向画布中拖入工具-->SQL脚本,将PLDA的第五个输出桩与SQL脚本连接,点击SQL脚本,在右侧写SQL语句
select * from ${t1};
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/f449a908b539415e8db001ae279ca214.jpg)
文章图片
右击SQL脚本点击执行后,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/4daaa0f8c713417292eb5bdbe2d2c5b4.png)
文章图片
3.5 结果分析和评估
3.5.1 K均值聚类
上一步把文章从主题的维度表示成了一个向量。接下来就可以通过向量的距离实现聚类,从而实现文章分类。我们这里可以简单看一下分类的结果。查看K均值聚类组件的结果,cluster_index表示的是每一类的名称。找到第0类,一共有docid为115,292,248,166四篇文章。
向画布中拖入机器学习-->聚类-->K均值聚类,将SQL脚本的输出与K均值聚类的输入数据连接,点击K均值聚类,在右侧进行字段和参数设置
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/ffbc00087722493b97736d168da29b77.jpg)
文章图片
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/234743e043c14dac9cd2b185878c3b68.jpg)
文章图片
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/1fee3a772d2c42629763540113344688.png)
文章图片
右击K均值聚类点击执行后,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/8a57805d57d742608f45ce66e3746144.png)
文章图片
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/e9e2122b3dcc465ab0574d8ecb53ead3.png)
文章图片
3.5.2 过滤与映射
通过过滤与映射组件查询115,292,248,166四篇文章
向画布中拖入数据预处理-->采样与过滤-->过滤与映射,将类型转换中转换后的数据表输入到过滤与映射中,点击过滤与映射,在右侧写入过滤条件
append_id=292 or append_id=115or append_id=248 or append_id=166 ;
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/b68595e867dd4beab2936bf261d072d9.png)
文章图片
右击过滤与映射点击执行后,查看数据
![机器学习实现海量新闻自动分类](https://img.it610.com/image/info8/524e04b41439464b96da937504aae094.png)
文章图片
【机器学习实现海量新闻自动分类】本文只是一个简单的案例,商业合作可以私下联系我们,我们在文本方面我们有较完善的解决方案。
推荐阅读
- 由浅入深理解AOP
- 继续努力,自主学习家庭Day135(20181015)
- 关于QueryWrapper|关于QueryWrapper,实现MybatisPlus多表关联查询方式
- MybatisPlus使用queryWrapper如何实现复杂查询
- python学习之|python学习之 实现QQ自动发送消息
- 孩子不是实现父母欲望的工具——林哈夫
- 一起来学习C语言的字符串转换函数
- opencv|opencv C++模板匹配的简单实现
- Node.js中readline模块实现终端输入
- 定制一套英文学习方案