机器学习实现海量新闻自动分类

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 通过最佳实践帮助您实现上述案例效果 Step1:数据导入MaxCompute 1.1 创建需要上传的本地数据 新闻文本表: ign="top"> 字段名 含义 类型 描述 category 新闻类型 string

通过最佳实践帮助您实现上述案例效果

Step1:数据导入MaxCompute

1.1 创建需要上传的本地数据

新闻文本表:

字段名 含义 类型 描述
category 新闻类型 string 体育、女性、社会、军事、科技等
title 标题 string 新闻标题
content 内容 string 新闻内容

源数据:nlp_use

stop_words表:

字段名 含义 类型 描述
point 用户名 string
stop_words 标点符号 string " " ,等

源数据:stop_words

1.2 创建MaxCompute表

1.2.1 开通MaxCompute

阿里云实名认证账号访问https://www.aliyun.com/product/odps ,开通MaxCompute,选择按量付费进行购买。

<a href=https://img.alicdn.com/tps/TB1TxkNOVXXXXaUaXXXXXXXXXXX-1124-472.png" width="836">

<a href=https://img.alicdn.com/tps/TB1qRw3OVXXXXX_XFXXXXXXXXXX-1243-351.png" width="836">

<a href=https://img.alicdn.com/tps/TB1gvgQOVXXXXXUXVXXXXXXXXXX-1208-337.png" width="836">

1.2.2 数加上创建MaxCompute project

操作步骤:

步骤1: 进入数加管理控制台,前面开通MaxCompute成功页面,点击管理控制台,或者导航产品->大数据(数加)->MaxCompute 点击“管理控制台”。

<a href=http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/assets/pic/49126/cn_zh/1487754370705/a1.png" width="836">

步骤2: 创建项目。付费模式选择I/O后付费,输入项目名称:

a2.png

步骤3: 创建MaxCompute表。进入大数据开发套件的数据开发页面

以开发者身份进入阿里云数加平台>大数据开发套件>管理控制台,点击对应项目操作栏中的进入工作区

TB1rvM2OVXXXXbBXFXXXXXXXXXX-1092-301.png

1.2.3 创建表

点击菜单数据管理,右上新建表

TB1cY7xOVXXXXXTaFXXXXXXXXXX-1280-310.png

1.2.4 填写信息配置

在新建表页面中填写基础信息的各配置项,点击下一步

TB1IOQCOVXXXXcdaXXXXXXXXXXX-833-500.png

在新建表页面中填写字段和分区信息的各配置项

TB1yLUYOVXXXXXDXVXXXXXXXXXX-831-537.png

1.2.5 点击提交

新建表提交成功后,系统将自动跳转返回数据表管理界面,点击我管理的表即可看到新建表

1.3 导入本地文件

进入大数据开发套件控制台,点击对应项目的进入工作区,点击菜单数据开发-->导入-->导入本地数据

TB1WQsEOVXXXXbgapXXXXXXXXXX-798-660.png

选择目标表,并选择字段匹配方式,点击导入

TB1kYcVOVXXXXcXXVXXXXXXXXXX-798-406.png

文件导入成功后,系统右上角将提示文件导入成功,同时可以执行select语句查看数据

TB1atJlPXXXXXXAXXXXXXXXXXXX-858-668.png

同样方法创建stop_words表

注意:如果原始字符集设GBK中文出现乱码,可改为UTF-8

Step2:机器学习中的数据准备

进入机器学习管理控制台,点击对应项目的进入机器学习

a3.png

选择需要的租户及工作空间,点击“提交”

1

进入机器学习页面后,右击我的实验点击新建空白实验,输入实验名和实验描述
TB1hTA3OVXXXXcvXFXXXXXXXXXX-400-383.png

切换到组件栏,向画布中拖入读数据表,点击读数据表,在右侧表选择栏填入你的MaxCompute表

TB1PMcKOVXXXXX0apXXXXXXXXXX-915-279.png

TB1mwwwOVXXXXa7aFXXXXXXXXXX-925-204.png

切换到字段信息栏,可以查看输入表的字段名、数据类型和前100行数据的数值分布

TB1TQwAOVXXXXaKaFXXXXXXXXXX-283-203.png

Step3:数据探索流程

实验流程图:

TB1T636OVXXXXbdXFXXXXXXXXXX-767-631.png

3.1 增加序号列

本文的数据源输入是以单个新闻为单元,需要增加ID列来作为每篇新闻的唯一标识,方便下面的算法进行计算。

3.1.1 增加序列号

切换至组件栏,向画布中拖入数据合并-->增加序号列,将nlp_use源表的输出与增加序号列连接,点击增加序号列,在右侧字段设置中进行填写

TB1.Xw1OVXXXXXGXVXXXXXXXXXX-1088-196.png

右击增加序列号点击执行后,查看数据

TB12eoROVXXXXcLXVXXXXXXXXXX-1090-486.png

3.1.2 类型转换

向画布中拖入数据合并-->类型转换,将增加序号列输入到类型转换中,点击类型转换,在右侧选择字段

TB1zuNfPXXXXXcRXXXXXXXXXXXX-1011-464.png

右击类型转换点击执行后,查看数据

TB1RhADOVXXXXc9apXXXXXXXXXX-606-492.png

3.2 分词及词频统计

这两步都是文本挖掘领域最常规的做法,首先利用分词控件对于content字段,也就是新闻内容进行分词。去除过滤词之后(过滤词一般是标点符号及助语),对于词频进行统计。

3.2.1 分词

切换至组件栏,向画布中拖入文本分析-->Split Word,将类型转换的输出连接到Split Word的输入数据表中,点击Split Word,在右侧设置字段

TB1NMRiPXXXXXaJXXXXXXXXXXXX-764-337.png

右击Split Word点击执行后,查看数据

TB1AAU1OVXXXXcYXFXXXXXXXXXX-502-489.png

3.2.2 词频统计

切换至组件栏,向画布中拖入文本分析-->词频统计

3.3 停用词过滤

停用词过滤功能用于过滤输入的停用词词库,一般过滤标点符号以及对于文章影响较少的助语等。

3.3.1 添加读数据表

切换到组件栏,向画布中拖入读数据表,点击读数据表,在右侧表选择栏填入你的MaxCompute表

TB1IlwPOVXXXXbNaXXXXXXXXXXX-675-210.png

右击读数据表点击执行,查看数据

TB14qZPOVXXXXaEaXXXXXXXXXXX-266-166.png

3.3.2 停用词过滤

切换至组件栏,向画布中拖入文本分析-->停用词过滤,将Split Word的输出和stop_words源表的输出分别与停用词过滤进行连接,点击停用词过滤,在右侧选择字段

TB1ebZGOVXXXXX7apXXXXXXXXXX-608-226.png

TB1Hg7.OVXXXXaAXpXXXXXXXXXX-996-347.png

右击停用词过滤点击执行,查看数据

TB19sEQOVXXXXXpaXXXXXXXXXXX-596-492.png

3.3.3 词频统计

向画布中拖入文本分析-->词频统计,将停用词过滤的输出表与词频统计连接,在右侧设置字段

TB1PNA8OVXXXXX6XFXXXXXXXXXX-569-282.png

TB1l2RdPXXXXXXIXpXXXXXXXXXX-273-187.png

右击词频统计点击执行,查看数据

TB1lOFbPXXXXXayXpXXXXXXXXXX-287-490.png

TB1ZUUPOVXXXXXyaXXXXXXXXXXX-311-488.png

3.4 文本主题挖掘

使用PLDA文本挖掘组件需要先将文本转换成三元形式,append_id是每篇新闻的唯一标识,key_value字段中冒号前面的数字表示的是单词抽象成的数字标识,冒号后面是对应的单词出现的频率。

3.4.1 三元组转kv

切换至组件栏,向画布中拖入文本分析-->三元组转kv,将词频统计的三元组输出与三元组转kv的输入表连接,点击三元组转kv,在右侧设置字段

TB1AvtlPXXXXXXpXXXXXXXXXXXX-1019-545.png

右击三元组转kv点击执行,查看数据

TB1WkkUOVXXXXamXVXXXXXXXXXX-1087-487.png

TB1qakLOVXXXXX8aXXXXXXXXXXX-330-492.png

3.4.2 PLDA

在上一步完成了文本转数字的过程,下一步数据进入PLDA算法。PLDA算法又叫主题模型,算法可以定位代表每篇文章的主题的词语。本次试验设置了50个主题,PLDA有六个输出桩,第五个输出桩输出结果显示的是每篇文章对应的每个主题的概率。

切换至组件栏,向画布中拖入文本分析-->PLDA,将三元组转kv的输出表与PLDA连接,点击PLDA,在右侧进行字段和参数设置

TB12qkGOVXXXXacaXXXXXXXXXXX-989-510.png

TB1CD.zOVXXXXbBaFXXXXXXXXXX-276-402.png

右击PLDA点击执行后,查看数据

TB18M38OVXXXXcUXpXXXXXXXXXX-1097-491.png

3.4.3 SQL脚本

向画布中拖入工具-->SQL脚本,将PLDA的第五个输出桩与SQL脚本连接,点击SQL脚本,在右侧写SQL语句

select * from ${t1};

TB1LKoHOVXXXXX8apXXXXXXXXXX-1047-546.png

右击SQL脚本点击执行后,查看数据

TB12uBePXXXXXcdXXXXXXXXXXXX-1107-493.png

3.5 结果分析和评估

3.5.1 K均值聚类

上一步把文章从主题的维度表示成了一个向量。接下来就可以通过向量的距离实现聚类,从而实现文章分类。我们这里可以简单看一下分类的结果。查看K均值聚类组件的结果,cluster_index表示的是每一类的名称。找到第0类,一共有docid为115,292,248,166四篇文章。

向画布中拖入机器学习-->聚类-->K均值聚类,将SQL脚本的输出与K均值聚类的输入数据连接,点击K均值聚类,在右侧进行字段和参数设置

TB1PasOOVXXXXbfaXXXXXXXXXXX-1009-582.png

TB1xMkLOVXXXXcDaXXXXXXXXXXX-1008-583.png

TB1cJQAOVXXXXXqaFXXXXXXXXXX-278-466.png

右击K均值聚类点击执行后,查看数据

TB1MzxgPXXXXXcrXXXXXXXXXXXX-308-490.png

TB16Vg_OVXXXXX0XpXXXXXXXXXX-278-492.png

3.5.2 过滤与映射

通过过滤与映射组件查询115,292,248,166四篇文章

向画布中拖入数据预处理-->采样与过滤-->过滤与映射,将类型转换中转换后的数据表输入到过滤与映射中,点击过滤与映射,在右侧写入过滤条件

append_id=292 or append_id=115  or append_id=248 or append_id=166 ;

TB14tcGOVXXXXbaapXXXXXXXXXX-586-601.png

右击过滤与映射点击执行后,查看数据

TB1ErgFOVXXXXapapXXXXXXXXXX-362-142.png

本文只是一个简单的案例,商业合作可以私下联系我们,我们在文本方面我们有较完善的解决方案。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
29天前
|
机器学习/深度学习
如何用贝叶斯方法来解决机器学习中的分类问题?
【10月更文挑战第5天】如何用贝叶斯方法来解决机器学习中的分类问题?
|
1月前
|
机器学习/深度学习 存储 自然语言处理
【机器学习】基于逻辑回归的分类预测
【机器学习】基于逻辑回归的分类预测
|
23天前
|
机器学习/深度学习 算法 数据可视化
机器学习的核心功能:分类、回归、聚类与降维
机器学习领域的基本功能类型通常按照学习模式、预测目标和算法适用性来分类。这些类型包括监督学习、无监督学习、半监督学习和强化学习。
22 0
|
1月前
|
机器学习/深度学习 传感器 算法
机器学习入门(一):机器学习分类 | 监督学习 强化学习概念
机器学习入门(一):机器学习分类 | 监督学习 强化学习概念
|
3月前
|
机器学习/深度学习 人工智能 算法
【人工智能】机器学习、分类问题和逻辑回归的基本概念、步骤、特点以及多分类问题的处理方法
机器学习是人工智能的一个核心分支,它专注于开发算法,使计算机系统能够自动地从数据中学习并改进其性能,而无需进行明确的编程。这些算法能够识别数据中的模式,并利用这些模式来做出预测或决策。机器学习的主要应用领域包括自然语言处理、计算机视觉、推荐系统、金融预测、医疗诊断等。
60 1
|
3月前
|
机器学习/深度学习 算法
【机器学习】简单解释贝叶斯公式和朴素贝叶斯分类?(面试回答)
简要解释了贝叶斯公式及其在朴素贝叶斯分类算法中的应用,包括算法的基本原理和步骤。
72 1
|
3月前
|
机器学习/深度学习
如何用贝叶斯方法来解决机器学习中的分类问题?
如何用贝叶斯方法来解决机器学习中的分类问题?
|
3月前
|
机器学习/深度学习 数据采集 自然语言处理
【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案–4 机器学习LGB 方案
在讯飞英文学术论文分类挑战赛中使用LightGBM模型进行文本分类的方案,包括数据预处理、特征提取、模型训练及多折交叉验证等步骤,并提供了相关的代码实现。
48 0
|
5月前
|
机器学习/深度学习 算法
机器学习方法分类
【6月更文挑战第14天】机器学习方法分类。
93 2
|
5月前
|
机器学习/深度学习 分布式计算 算法
在机器学习项目中,选择算法涉及问题类型识别(如回归、分类、聚类、强化学习)
【6月更文挑战第28天】在机器学习项目中,选择算法涉及问题类型识别(如回归、分类、聚类、强化学习)、数据规模与特性(大数据可能适合分布式算法或深度学习)、性能需求(准确性、速度、可解释性)、资源限制(计算与内存)、领域知识应用以及实验验证(交叉验证、模型比较)。迭代过程包括数据探索、模型构建、评估和优化,结合业务需求进行决策。
55 0