第8次课-文本分类

文本分类问题算是自然语言处理领域中一个非常经典的问题

定义?

文本分类问题分为特征工程分类器两部分。

1.特征工程

机器学习问题是把数据转换成信息再提炼到知识的过程

特征是“数据–>信息”的过程

分类器是“信息–>知识”的过程

文本特征工程分为文本预处理、特征提取、文本表示三个部分,最终目的是把文本转换成计算机可理解的格式,并封装足够用于分类的信息,即很强的特征表达能力。

1.1文本预处理

文本预处理过程是在文本中提取关键词表示文本的过程,中文文本处理中主要包括文本分词和去停用词两个阶段

特征提取

向量空间模型的文本表示方法的特征提取对应特征项的选择和特征权重计算两部分

文本表示

本表示的目的是把文本预处理后的转换成计算机可理解的方式,是决定文本分类质量最重要的部分。传统做法常用词袋模型(BOW, Bag Of Words)或向量空间模型(Vector Space Model),最大的不足是忽略文本上下文关系,每个词之间彼此独立,并且无法表征语义信息。

word embedding文本分布式表示方法则是深度学习方法的重要基础

分类器

分类器基本都是统计分类方法了,基本上大部分机器学习方法都在文本分类领域有所应用,比如朴素贝叶斯分类算法(Naïve Bayes)、KNN、SVM、最大熵和神经网络等等。

早期文本分类方法

词袋模型和tf-idf方法。

Bag-of-words模型

词袋模型关注的是词的出现次数,而没有记录词的位置信息

首先使用词袋模型做一下文本相似度的检测。文本相似性很有用,譬如,在微博和各大BBS上,每一篇文章/帖子的下面都有一个推荐阅读,那就是根据一定算法计算出来的相似文章;还可以根据相似度进行信息过滤;也可以用它来进行分类。

tfidf 深度学习文本分类方法

传统做法主要问题的文本表示是高维度高稀疏的,特征表达能力很弱,而神经网络不擅长对此类数据的处理;此外需要人工进行特征工程。

fastText

fasttext由Facebook开源,用于词向量训练和文本分类

fastText结合了自然语言处理和机器学习中的成功的理念,包括了使用词袋以及n-gram表征语句,还有使用子词(subword)信息,并通过隐藏表征在类别间共享信息。

Fasttext最大的特点是模型简单,只有一层的隐层以及输出层,因此训练速度非常快,在普通的CPU上可以实现分钟级别的训练,比深度模型的训练要快几个数量级。同时,在多个标准的测试数据集上,Fasttext在文本分类的准确率上,和现有的一些深度学习的方法效果相当或接近。

文本分类的目的

是将文档(例如电子邮件、帖子、文本消息,产品评论等)分给一个或多个类别,表示这些类别可以是评价分数,垃圾邮件、非垃圾邮件,或者是文档所用的语言。目前,构建此类分类器最主要的方法是机器学习,机器学习方法从实例中学习分类规则,为了构建分类器,我们需要带标签的数据,标签数据指的数据包括文档和此文档所对应的类别(或称标记或标签),例如,我们可以构建一个分类器,该分类器将cooking自动分为几个标签如:pot、bowl、baking等

获取数据及数据预处理

我们需要带有标签的数据去训练我们的监督学习的分类器

使用fastText快速搭建分类器

模型优化


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!