文本分类的一般流程:
- 预处理
- 文本表示及特征选择
- 构造分类器
- 分类
文本分类的应用
- 垃圾邮件的判定:是否为垃圾邮件
- 根据标题为图文视频打标签:政治、体育、娱乐等
- 根据用户阅读内容建立画像标签:教育、医疗等
- 电商商品评论分析等等类似的应用:消极、积极
- 自动问答系统中的问句分类
传统文本分类方法
文本分类问题=特征工程+分类器
- 特征工程:文本处理、特征提取、文本表示
-
目的:把文本转换成计算机可理解的格式,并封装足够用于分类的信息,即很强的特征表达能力
-
文本预处理
文本预处理是在文本中提取关键词表示文本的过程,中文文本处理种主要包含文本分词和去停用词两个阶段。
- 停用词:停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。这些停用词都是人工输入、非自动化生成的,生成后的停用词会形成一个停用词表。但是,并没有一个明确的停用词表能够适用于所有的工具。甚至有一些工具是明确地避免使用停用词来支持短语搜索的。
中文分词技术
- 基于字符串匹配的分析方法:字典,切分规则和匹配顺序是核心。
- 速度快,时间复杂度可以保持在O(n),实现简单;但是对歧义和未登录词处理效果不佳。
- 基于理解的分词方法:通过让计算机模拟人对句子的理解,达到识别词的效果,在分词的同时进行句法、语义分析,利用句法信息和语义信息来处理歧义现象。
- 分词子系统、句法语义子系统、总控部分。在总控部分的协调下,分析子系统可以获得有关词、句子等的句法和语义信息来对分词歧义进行判断。由于汉语知识的笼统、复杂性,难以将各种语言信息组织成机器可直接读取的形似,因此目前基于理解的分词系统还处在试验阶段。
- 基于统计的分词:统计学认为分词是一个概率最大化问题,即拆分句子,基于语料库。统计相邻的字组成的词语出现的概率,相邻的词出现的次数多,就出现的概率大,按照概率值进行分词,所以一个完整的语料库很重要。
英文分词技术
英文分词比中文分词简单,可以根据空格和标点来分词,然后对每一个单词进行词干还原和词形还原,去掉停用词和非英文内容。
- 文本表示:将文本转换成计算机可理解的方式。一篇文档表示成向量,整个语料库表示成矩阵。
- 词袋法:忽略其词序和语法,句法,将文本仅仅看作是一个词集合。若词集合共有NN个词,每个文本表示为一个NN维向量,元素为0/1,表示该文本是否包含对应的词。(0,0,0,...,1,...0,0,0,0)一般来说词库量至少都是百万级别,因此词袋模型有两个最大的问题:高维度,高稀疏性
- n-gram词袋模型:与词袋模型相似,考虑了局部的顺序信息,但是向量的维度过大,基本不采用。如果词集合大小为N,则bi-gram的单词总数为N2向量空间模型
3.向量空间模型:以词袋模型为基础,向量空间模型通过特征选择降低维度,通过特征权重计算增加稠密性。
- 特征权重计算:一般有布尔权重、TFIDF型权重、以及基于熵概念权重这几种方式,其中布尔权重是指若出现则为1,否则为0,也就是词袋模型;而TFIDF则是基于词频来进行定义权重;基于熵的则是将出现在同一文档的特征赋予较高的权重。
机器学习分类器
将文本表示为模型可以处理的向量数据后,就可以使用机器学习模型来进行处理,常用的模型有:
- 朴素贝叶斯
- KNN方法
- 决策树
- 支持向量机
- GBDT/XGBOOST