程序员的机器学习入门笔记(五):文本分类的入门介绍

背景说明

可以说在分析机器学习的数据源中最常见的知识发现主题是把数据对象或事件转换为预定的类别,再根据类别进行专门的处理,这是分类系统的基本任务。

文本分类也如此:其实就是为用户给出的每个文档找到所属的正确类别(主题或概念)。想要实现这个任务,首先需要给出一组类别,然后根据这些类别收集相应的文本集合,构成训练数据集,训练集既包括分好类的文本文件也包括类别信息。

今天,在互联网的背景下自动化的文本分类被广泛的应用于,包括文本检索,垃圾邮件过滤,网页分层目录,自动生成元数据,题材检测,以及许多其他的应用领域,是文本挖掘最基础也是应用最广范的核心技术。

目前, 有两种主要的文本分类方法,一是基于模式系统(通过运用知识工程技术),二是分类模型(通过使用统计和/或机器学习技术)。专家系统的方法是将专家的知识以规则表达式的形式编码成分类系统。机器学习的方法是一个广义归纳过程,采用由一组预分类的例子,通过训练建立分类。由于文件数量以指数速度的增加和知识专家的可用性变得越来越小,潮流趋势正在转向机器学习 - 基于自动分类技术。

文本分类操作的基本步骤

不同语言的文本分类系统的现实过程可能存在一定的差异,但是大的流程基本是相同的,下面主要说明中文分类系统涉及到的几个主要的步骤

样本的预处理

去除样本中的噪声数据,例如:如果样本数据来源于网页,需要去处掉网页上的标签等操作。

文本处理的核心任务要把 非结构化和半结构 化的文本转化为结构 化的形式, 即向量空间模型。这之前,必须要对不同类型的文 本进行预处理。在大多 数文本挖掘 任务中,文本预处理的步骤都是相似的,基本步骤如下

确定需要处理的文本数据范围

有时间语料库里面的文件可能会很大,根据处理目的的不同,对文本的处理范围可能也不同,例如,如果需要使用语料库的训练结果,来做文本的分类预测,就需要处理语料库中文件的全部内容,如果只是用来做情感分析,可能只要分析每个文件的摘要部分

样本库的建立

样本的来源主要包括两种
- 已经分类好且存在的样本
如果出于研究目的,对样本的要求不高,可以使用一些公开的样本库,可以使用复旦大学谭松波中文文本分类语料(下载地址: http://www.threedweb.cn/thread-1292-1-1.html)和搜狗新闻分类语料库(下载地址: http://www.sogou.com/labs/dl/c.html)等。如果对于样本的质量要求较高,只能根据业务的要求对样本的质量逐步的进行改进

  • 未分类的样本库
    互联网上很多的综合性的新闻网站,每个网站都会将自己的内容进行分类,可以根据开发的需求,通过爬虫从这些新闻网站上对内容进行爬取,并使用网站自身提供的分类标签对爬到的数据打上标签

中文分词

使用分词器对文本进行分词,并去处停用词,例如 “的”,”也”,”但是”等词

中文分词 (Chinese Word Segmentation) 指的是将一个汉字序列(句子)切分成一 个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。 我们知道,在英文的行文中, 单词之间是以空格作 为自然分界符的,而中 文只是字、 句和段能通过明显的分界符来 简单划界,唯独词没 有一个形式上的分界符 ,虽然英文 也同样存在短语的划分问题, 不过在词这一层上, 中文比之英文要复杂的 多、困难的 多。中文分词,不仅是中文文 本分类的一大问题, 也是中文自然语言处理 的核心问题 之一。

在一定意义上,中文分词不完 全是个技术问题。 中文分词的难点也不 完全是算法 问题。因为关于到底什么是词 这个概念在中国理论 界已经争论了很多年。 一个著名的 例子就是:“鸡蛋”、“牛肉”、“下雨”是词吗,如果是那么“鸭蛋”、“驴肉”、 “下雪”、“鸟蛋”、“鱼肉 ”、“下雾”也应该 是词,按照这样规则组 合下去会产 生很多让人费解的结论。如果不是,这些字符串在我们日常生活中使用的频率非常高, 而且都有独立的意义。
分词是自然语言处 理中最基本、最底层 的模块,分 词精度对后续应用模块影响很 大,纵观整个自然语 言处理领域,文本或句 子的结构化 表示是语言处理最核心的任务 。
目前,文本的结构化表示简单分为四大类 :词向量空 间模型、主题模、主题模型、依存句法的树表示、RDF 的图表示。以上这四种文本表示都以分 词为基础的。

一般专业化大型的文本分类系统,为了提高精度,常常订制开发自己的分词系统。 一般算法都使用 CRF,语料资源则各有不同。现在开放出来的、比较成熟的、有商用 价值的分词工具有:理工大学张华平博士开发的中文分词系统:http://ictclas.nlpir.org/ (一年免费试用权);哈工大的语言云系统:http://w ww .ltp-c loud.c om/intro/(开源),Ansj的中文分词系统:http://www.nlpcn.org/(开源)等等。这类分词系统完整性强,稳定性、精度也不错。即使如此也不能满足搜索引擎 类公司对超大规模 分词的需求,一般像 新浪和百度这些公司的分词系统,仅扩展词汇要到五百多万,估计基础词汇不少于五十万。
以上这些分词系统与 Python 整合都比较麻烦,占用资源也大。因为分词不是本书讲解的重点,为了方便说明原理, 本文后面的例子使用 jieba 分词,它是专门使用 Python 语言开发的分词系统,占用资源 较小,常识类文档的分词精度较高。对于非专业文档绰绰有余。下载最新的jibes,分词算法使用的是 CRF,编写语言是 Python,基础词库 349046 个。

构建词的向量空间

主要是统计文本中词的频率
文本分类的结构化方法就是向量空间模型,虽然越来越多的实践已经证明,这种
模型存在着的局限,但是迄今为止,它仍是在文本分类中应用最广泛、最为流行的数据结构,也是很多相关技术的基础,例如:推荐系统、搜索引擎等。

向量空间模型把文本表示为一个向量,其中该向量的每个特征表示为文本中出现
的词。通常,把训练集中出现的每个不同的字符串都作为一个维度,包括常用词、专有词、词组和其他类型模式串,如电子邮件地址和URL。

目前,大多数文本挖掘系统,都把文本存储为向量空间的表示,因为它便于运用机器学习算法。这类算法适用并能有效处理高维空间的文本情况。但是,对于大规模文本分类,这会导致极高维的空间,即使是中等大小的文本文件集合,向量的维度也很轻易就达到数十万维。

由于文本在存储为向量空间时,维度比较高。 为节省存储空间和提高搜索效率,
在文本分类之前会自动过滤掉某些字或词,这些字或词即被称为停用词。 这类词一般都是意义模糊的常用词,还有一些语气助词,通常它们对文本起不了分类特征的意义。

在设计系统的时候,可以逐步建立自己的停词库,在对样本进行训练时,将其作为参数,从而降低处理数据的复杂程度

使用TF-IDF构建权重策略

通过TF—IDF方法选出能代表文本特征的一些词
计算文本的权重向量,应该选择一个有效的权重方案。最流行的方案是对 TF-IDF
权重的方法。 TF-IDF的含义是词频–逆文档频率,其含义是如果某个词或短语在一篇文章中出现的频率 TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。

TF-IDF 的假设是,高频率词应该具有高权重,除非它也是高文档频率。“ my”这个词在文本中是最经常出现的词汇之一。它不仅很多次发生在单一的文本中,但几乎也发生在每个文档中。逆文档频率就是使用词条的文档频率来抵消该词的词频对权重的影响,而得到一个较低的权重。

样本训练与预测

使用算法,对样本进行训练,构建出分类模型
最常用的文本分类方法有 kNN 最近邻算法,朴素贝叶斯算法和支持向量机算法。
这三类算法一般而

  • 2
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值