Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【 文智背后的奥秘 】系列篇 : 自动文本分类

【 文智背后的奥秘 】系列篇 : 自动文本分类

原创
作者头像
文智
修改于 2017-06-19 11:29:40
修改于 2017-06-19 11:29:40
4.6K3
举报
文章被收录于专栏:文智的专栏文智的专栏

一.自动文本分类

概述文本分类,顾名思义,就是将一篇文档归为已知类别中的一类或者几个类,为了实现自动分类的目标,通常有以下几个步骤:

  1. 构建分类类别体系
  2. 获取带有类别标签的训练数据
  3. 训练数据的文本表达及特征选择
  4. 分类器的选择与训练
  5. 分类应用数据

给定一篇待分类的文档,若对其进行自动分类,通常需要把文档表达成机器可以处理的数据类型。目前常用的文本表达方式有向量空间模型(VSM),即把文档映射为一个特征向量

其中ti为文档分词后的词条项,w(ti)为相应词条项的权重。

我们的自动文本分类系统,为用户提供自动文本分类服务,平台已对文本分类的模型算法进行了封装,用户只需提供待分类的文本数据,而不必关注具体的实现,通过平台就能得到提供文本的所属类别。目前平台能识别类别囊括了软件、影视、音乐、健康养生、财经、广告推广、犯罪、政治等40多个类别,且系统算法支持快速迭代更新已有类别及增加新类别。

二.自动文本分类系统

1.系统主要框架

目前我们的自动分类系统框架如图1.1所示。系统主要分为三大块:系统输入层、系统算法封装层和输出层。其中系统的输入可包含四个部分:包含文本的url、主标题和副标题及正文部分,其中前三个输入串可选;系统的算法封装层,封装了对文本目标进行分类的分类器及算法模型的迭代更新;系统的输出为该文档所属的类别。

图1.1 自动分类系统框图

2.系统关键技术

2.1 类别体系

目前我们系统构建的类别体系主要基于网页内容分类体系,主要类别涵盖了旅游资讯、游戏、人物访谈介绍、体育、音乐、影视、软件、文学、健康、美食、财经、教育、广告推广、犯罪类别、自然灾害、政治等40多个类别。每个类别体系下对应一个与类别相关的词特征文件。词特征文件的生成及挖掘更新,文章后面会有提及。此类别体系,易扩展,增加新的类别时,若与旧体系类别无交叉,则直接添加该类别及生成一个对应的词特征文件,原有类别体系不变。若为旧体系类别中的子类别时,只需分拆原有体系中对应的大类类别,即对该大类类别词特征文件分拆即可,别的类别词特征文件不变。图2.0为系统类别体系的一个缩略的层级结构。

图2.0 类别体系层级结构

2.2 分类相关技术

2.2.1 概述

从图1.1中可以看到,我们的分类系统输入支持四个维度的特征:

  • 包含输入文档内容的url网址(可选)
  • 文档的主标题(可选)
  • 文档的副标题(可选)
  • 文档的正文

直观上来说,url网址中的某些模式和类别呈现很强的正相关性。比如url包含“video”字符串,那么该url对应的文档分为影视类的概率就很大。同理,文档的标题所属的类别往往决定文档的最终类别。下图2.1为分类器分类的主要流程。其中数据预处理主要包括数据去噪、去重等,各个分类器请参见下节。

图2.1 分类器分类主要流程

2.2.2 分类模型

目前流行的分类算法有决策树、基于规则的分类、朴素贝叶斯、支持向量机SVM、逻辑回归、神经网络等。我们的自动分类系统根据目前类别体系及应用场景,最终采用了朴素贝叶斯+规则相结合的方法。

2.2.3 特征选择

从分类流程可看出,系统支持对url和文本内容分别分类,最后通过类别投票打分方式确定最终的类别输出。从系统的输入数据来看,提取的特征主要包括:url域特征和文本词特征。Url域特征通过简单的串分割即可得到,文本词特征可利用分词软件进行切分。文档通过分词之后,会包含大量的词。而有些词,如“的”、“很好”等对类别不具有区别性。因此需要通过特征选择方法来选择一批类别相关的词特征。常用的特征选择方法有基尼系数、互信息、信息增益、卡方统计等。通过比较,最终系统卡方统计方法来进行特征选择。图2.2为系统采用的特征选择流程。流程输入为类别的正样本和负样本。通过文档分词之后,可通过简单的词的idf及词性对词进行过滤。然后对于最后保留的词计算词与类别的卡方值,通过设置一个合理卡方值阈值及词个数阈值,选取大于阈值的词作为该类的特征词。对于最后选出的特征词,通过tf*idf及归一化后的卡方值来确定该词的权重。Url域特征文件生成方法亦类似。

图2.2 类别特征选择流程

2.2.4 类别在线预测与特征词的离线挖掘

通过上面特征选择方法之后,最终系统会为类别体系中的每个类别生成类别词特征文件。为了提高分类时的时间性能,系统会为特征文件生成trie-tree,这样能更快的匹配命中的特征,而无需对全文档进行分词。考虑到输入的正文的长度,在实际分类时,算法会对正文按一定长度进行切分分别分类,最后加权综合得到正文的分类类别。目前,针对输入的文档,系统提供4个预测器分别给出url、主标题、副标题、正文的分类类别结果。为了判别出输入文档的最终类别,算法采用加权各个分类结果,最后投票得出。公式如下式所示:

其中加权权重wi可通过ada-boost学习算法训练得到。系统最终输出的是文档分为系统所支持的各个类别的得分。

上述分类算法对文档进行分类后,得到带有类别标签的文档数据,这部分数据可作为类特征词更新补充离线挖掘流程的输入集。图2.3给出了类别在线预测与特征离线挖掘流程。

图2.3 在线预测与离线挖掘流程

图2.3可看出,离线挖掘流程复用在线预测的分类部分,得到挖掘流程的输入数据,通过离线挖掘,更新类别的词特征,进而反馈给输入端,用于改进下一次的分类模型,如此则形成预测、更新的闭环。

图2.3中的特征离线挖掘,系统主要采用以下两种方式完成:

方式一: 把经过分类后的文本数据,即带有类别标签的数据,经过图2.2所示的特征挖掘流程得到类增加的特征集。由于输入的数据为直接系统分类后的数据,非人工标注的样本数据,因此,为了增加挖掘的特征准确性和可用性,经算法挖掘后的特征需要经过人工进行标注,并与旧特征集排重合并,最终离线迭代更新类的特征集。

方式二: 选取大批量数据进行主题模型(topic model)聚类训练(如LDA/word2vec聚类),得到隐含主题及描述该主题的特征词文件。再把经过分类后的文本数据用训练得到的隐含主题进行表征描述,通过卡方检验方法选择与类别相关的top N个主题,合并这些主题下的特征文件,同样经过人工标注剔除噪声特征,并与旧特征集排重合并,最终离线迭代更新类的特征集。

图2.4类特征离线挖掘两种方式

方式一和上述讲到的特征选择方法类似。方式二则基于图2.5所示直观理解所实现,即一篇文档可由多个抽象主题进行表达,而每个主题可直接由词特征集来表示。比如说一个典型的交通事故类别文章,可能会命中很多汽车类别中的汽车类型名,如“宝马”、“大货车”,同时也可能命中犯罪类别中的经常出现的“伤亡”、“死亡”等特征词。语义层面上,把文档用主题进行表达,可用相关的主题模型算法得到。本系统使用开源工具word2vec把词按隐含主题进行聚类。在主题模型聚类过程中,需要指定训练语料的隐含主题数,鉴于当前的应用场景,设定主题数为5000。通过word2vec工具得到的词特征集,覆盖面全且语义相近,能很好解决类别词特征覆盖的长尾问题。

图2.5 文档、主题、特征集关系表示

3.系统关键指标

  • 分类时间性能:单进程、平均每条数据长度2kb,1500条/秒
  • 分类准确率:类别体系中分类准确率平均80%以上

4.系统应用

系统最初为网页抽取或转码时对网页进行分类。经过不断的迭代更新,目前系统适应的场景更加广泛,如微博等社交消息的分类处理与应用、网络热门话题识别与应用等。图4.1为系统分类的效果图示例。

图4.1 文本分类效果图

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
3 条评论
热度
最新
请问增加新类别是如何实现的?文章中只提到增加新类别的词特征文件,不知道怎么在分类器中体现新类别呢?
请问增加新类别是如何实现的?文章中只提到增加新类别的词特征文件,不知道怎么在分类器中体现新类别呢?
回复回复点赞举报
mark
mark
回复回复点赞举报
学习了
学习了
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
文本数据的机器学习自动分类方法(上)
【编者按】:随着互联网技术的迅速发展与普及,如何对浩如烟海的数据进行分类、组织和管理,已经成为一个具有重要用途的研究课题。而在这些数据中,文本数据又是数量最大的一类。以统计理论为基础,利用机器学习算法对已知的训练数据做统计分析从而获得规律,再运用规律对未知数据做预测分析,已成为文本分类领域的主流。InfoQ联合“达观数据“共同策划了《文本数据的机器学习自动分类方法》系列文章,为您详细阐述机器学习文本分类的基本方法与处理流程。 本文为第一部分,着重介绍文本预处理以及特征抽取的方法。第二部分将会着重介绍特征向量
小莹莹
2018/04/23
2K0
文本数据的机器学习自动分类方法(上)
NLP概述和文本自动分类算法详解 | 公开课笔记
文本挖掘任务大致分为四个类型:类别到序列、序列到类别、同步的(每个输入位置都要产生输出)序列到序列、异步的序列到序列。
用户1737318
2019/11/19
1.8K0
NLP概述和文本自动分类算法详解 | 公开课笔记
文本分类实战--从TFIDF到深度学习CNN系列效果对比(附代码)
数据集中主要包含下面几个文件,可见数据集很小也很简单,只需要使用training.csv文件进行训练我们的文本分类模型,使用testing.csv进行预测并提交结果即可:
机器学习AI算法工程
2019/10/28
1.6K0
文本分类实战--从TFIDF到深度学习CNN系列效果对比(附代码)
文本分类六十年
文本分类是自然语言处理中最基本而且非常有必要的任务,大部分自然语言处理任务都可以看作是个分类任务。近年来,深度学习所取得的前所未有的成功,使得该领域的研究在过去十年中保持激增。这些文献中已经提出了许许多多的算法模型、基准数据集一集评测指标,因此需要一个对这个领域进行全面而且跟进趋势的调查。这里我们介绍基于机器学习和深度学习的文本分类,主要内容来自北航、伊利诺伊大学等学者联合发表论文 A Survey on Text Classification: From Shallow to Deep Learning。
AI科技大本营
2020/12/09
1.2K0
文本分类六十年
大话文本分类
概述 文本分类是自然语言处理的重要应用,也可以说是最基础的应用。常见的文本分类应用有:新闻文本分类、信息检索、情感分析、意图判断等。本文主要针对文本分类的方法进行简单总结。 01 — 传统机器学习方法 分类问题一般的步骤可以分为特征提取、模型构建、算法寻优、交叉验证等。对于文本而言,如何进行特征提取是一个很重要也很有挑战性的问题。文本的特征是什么,如何量化为数学表达呢。 最开始的文本分类是基于规则的,特征就是关键词,例如足球在体育类出现的次数多,就将含有足球这一关键词的文本氛围体育。后来为了便于计算,通过
CodeInHand
2018/03/26
1.6K0
大话文本分类
基于libsvm的中文文本分类原型
李海波 http://blog.csdn.net/marising/article/details/5844063 支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本 、非线性 及高维模式识别 中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中。支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小 原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(
机器学习AI算法工程
2018/03/13
1.6K0
EMNLP 2018 | 短文本分类,腾讯AI Lab联合港中文提出主题记忆网络
论文:Topic Memory Networks for Short Text Classification
机器之心
2018/11/23
1.1K0
基于 word2vec 和 CNN 的文本分类 :综述 & 实践
本文主要介绍了如何使用深度学习解决文本分类问题,通过对比多种深度学习模型,包括传统的机器学习方法、基于词嵌入的word2vec和基于神经网络的CNN和RNN,阐述了在自然语言处理领域应用深度学习方法的可行性和优势。同时,作者还分享了在实践过程中的一些感悟,包括数据的重要性、实验记录和分析以及尝试多种方法以找到最适合自己问题的解决方案。
serena
2017/08/31
19.1K4
基于 word2vec 和 CNN 的文本分类 :综述 & 实践
【2023】数据挖掘课程设计:基于TF-IDF的文本分类
PyCharm 2022.3.1 (Professional Edition)
Qomolangma
2024/07/29
1250
【2023】数据挖掘课程设计:基于TF-IDF的文本分类
(二)中文文本分类--机器学习算法原理与编程实践 - 简书
本章知识点:中文分词,向量空间模型,TF-IDF方法,文本分类算法和评价指标 使用的算法:朴素的贝叶斯算法,KNN最近邻算法 python库:jieba分词,Scikit-Learning 本章目标:实现小型的文本分类系统 本章主要讲解文本分类的整体流程和相关算法
会呼吸的Coder
2020/02/17
1.5K0
第二章--第三篇---文本分类
文本分类是一种基于自然语言处理技术,对给定的文本进行分类的方法。具体而言,文本分类将一篇文本分配到一个或多个预定义的类别中,这些类别通常是事先定义好的,例如新闻、评论、垃圾邮件、商品分类等。 文本分类在实际应用中有着广泛的应用,例如在舆情监控、垃圾邮件过滤、新闻分类、商品分类、情感分析等领域。通过对海量文本数据进行分类,可以帮助用户快速准确地获得所需信息,从而提高效率。此外,文本分类还可以帮助企业识别消费者的意见和情感倾向,为其提供更好的产品和服务,增强市场竞争力。
喵叔
2023/05/11
4740
【 文智背后的奥秘 】系列篇 :情感分类
本文介绍了文智平台情感分类系统,该系统主要基于深度学习技术,针对互联网产品、新闻、影视等领域的评论进行情感倾向分析。系统通过自然语言处理技术对文本进行预处理、特征提取、分类器等模块,最终输出情感分类结果。系统还介绍了在垂直领域的应用,如电影评论、电商评论等,并给出了相应的系统架构设计、算法细节等。
文智
2016/09/29
4.2K3
【 文智背后的奥秘 】系列篇 :情感分类
课堂总结 | 达观数据文本挖掘负责人分享文本分类方法和应用案例
新媒体管家 自然语言处理(NLP)一直是人工智能领域的重要话题,而人类语言的复杂性也给NLP布下了重重困难等待解决。随着深度学习(Deep Learning)的热潮来临,有许多新方法来到了NLP领域,给相关任务带来了更多优秀成果,也给大家带来了更多应用和想象的空间。 近期,达观数据文本挖掘组负责人张健应邀在雷锋网AI研习社分享了一些NLP方面的知识和案例。 1 达观文本挖掘系统整体方案 达观文本挖掘系统整体方案包含了NLP处理的各个环节,从处理的文本粒度上来分,可以分为篇章级应用、短串级应用和词汇级应用
达观数据
2018/03/30
1.5K0
课堂总结 |  达观数据文本挖掘负责人分享文本分类方法和应用案例
教你用python做文本分类
作者:王千发 编辑:李文臣 什么是文本分类 一个文本分类问题就是将一篇文档归入预先定义的几个类别中的一个或几个。通俗点说,就是拿一篇文章,问计算机这文章要说的究竟是体育,经济还是教育。文本分类是一个监督学习的过程,常见的应用就是新闻分类,情感分析等等。其中涉及到机器学习,数据挖掘等领域的许多关键技术:分词,特征抽取,特征选择,降维,交叉验证,模型调参,模型评价等等,掌握了这个有助于加深对机器学习的的理解。这次我们用python的scikit-learn模块实现文本分类。 文本分类的过程 首先是获取数据集,为
机器学习算法工程师
2018/03/06
3.9K1
教你用python做文本分类
文本分类算法研究与实现
近年来,随着Internet的迅猛发展,网络信息和数据信息不断扩展,如何有效利用这一丰富的数据信息,己成为广大信息技术工作者所关注的焦点之一。为了快速、准确的从大量的数据信息中找出用户所需要的信息,文本信息的自动分析也成为了当前的迫切需求。对文本信息的分析中的一个主要技术就是文本分类。文本分类问题是自然语言处理的一个基本问题,很多相关的研究都可以归结为分类问题。文本分类是指将文本按一定的规则归于一个或多个类别中的技术。近年来,许多统计的方法和机器学习的方法都应用到文本分类方面,如朴素贝叶斯方法(NB)、K-近邻方法(KNN)、支持向量机方法(SVM)等。
全栈程序员站长
2022/08/31
5710
文本分类算法研究与实现
【 文智背后的奥秘 】系列篇 :文本聚类系统
本文介绍了基于Spark的LDA主题模型在文本聚类分析中的应用,通过与其他常见聚类算法进行比较,展示了其在处理大规模文本数据时的效率和准确性。同时,文章还介绍了文智平台在支持多语言、处理多主题、提供可视化界面等方面的特点。
文智
2016/09/29
5.4K0
【 文智背后的奥秘 】系列篇 :文本聚类系统
用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
近来在同时做一个应用深度学习解决淘宝商品的类目预测问题的项目,恰好硕士毕业时论文题目便是文本分类问题,趁此机会总结下文本分类领域特别是应用深度学习解决文本分类的相关的思路、做法和部分实践的经验。
CreateAMind
2018/07/24
2K0
用深度学习(CNN RNN Attention)解决大规模文本分类问题 - 综述和实践
文本分类算法综述
文本分类大致有两种方法:一种是基于训练集的文本分类方法;另一种是基于分类词表的文本分类方法。两种方法出自不同角度的研究者,训练集法更多的来自计算机或人工智能研究领域,而分类表法则更多地来自突出情报领域。本文主要介绍前一种。
全栈程序员站长
2022/06/27
6180
玩玩文本挖掘-wordcloud、主题模型与文本分类
本文主要介绍文本挖掘的常见方法,主要包括词频分析及wordcloud展现、主题模型、文本分类、分类评价等。分类主要包括无监督分类(系统聚类、KMeans、string kernals),有监督分类(k
机器学习AI算法工程
2018/03/13
1.6K0
玩玩文本挖掘-wordcloud、主题模型与文本分类
基于机器学习的文本分类算法的研究[通俗易懂]
文本分类的方法属于有监督的学习方法,分类过程包括文本预处理、特征抽取、降维、分类和模型评价。本文首先研究了文本分类的背景,中文分词算法。然后是对各种各样的特征抽取进行研究,包括词项频率-逆文档频率和word2vec,降维方法有主成分分析法和潜在索引分析,最后是对分类算法进行研究,包括朴素贝叶斯的多变量贝努利模型和多项式模型,支持向量机和深度学习方法。深度学习方法包括多层感知机,卷积神经网络和循环神经网络。
全栈程序员站长
2022/06/27
8770
基于机器学习的文本分类算法的研究[通俗易懂]
推荐阅读
相关推荐
文本数据的机器学习自动分类方法(上)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档