APP下载

基于机器学习的文本情感多分类的学习与研究

2020-08-26刘呈

电脑知识与技术 2020年20期
关键词:文本分类自然语言处理机器学习

摘要:文本分类与情感分类是自然语言处理中基础的领域,为帮助初学者对文本情感多分类的项目学习,在机器学习的基础上,分析了线性逻辑回归算法、朴素贝叶斯模型在文本情感分类项目中的应用,并针对数据处理、模型构建、模型训练、模型测试过程中初学者难以解决和易出错的部分进行分析与实现。结合kaggle上的比赛数据实例,实现了完整的文本情感多分类项目并做出详细分析,项目评测结果较为可观,证实可以帮助初学者更易上手文本情感多分类和机器学习。同时提出了基于传统二分类问题的多分类问题解决方法。

关键词:机器学习;文本分类;情感分类;自然语言处理;多分类

中图分类号:TP18 文献标识码:A

文章编号:1009-3044(2020)20-0181-02

Study and Research on Text Emotion Multi-Classification Based on Machine Learning

LIU Cheng

(Central China Normal University, Wuhan 430079,China)

Abstract: Text categorization and emotion classification are basic fieldsin natural language processing. To help beginners leam theitems of text sentiment multi-classification. based on machine learning, the linear logistic regression algorithm and Bayesian modelare analyzed in the text sentiment classification project. In the process of data processing、model building、model training and mod-el testing, it is difficult for beginners to solve and error-prone parts are analyzed and implemented. Combined with the game dataexamples on Kaggle, a complete text emotion multi-classification project has been implemented and detailed analysis has beenmade. The results are considerable, which proves that it can help beginners get started with text emotion classification and machineleaming. At the same time, a multi-classification problem solving method based on the traditional two-classification problem isproposed.

Key words : machine leaming ; text categorization; emotion classification: NLP; Multi-classification

隨着人工智能的飞速发展,作为最核心与最具挑战性领域之一的自然语言处理在最近几年逐渐进入研究高潮,进入这个领域的初学者也越来越多。在NLP(Natural Language Process-ing.)领域,所需知识比较繁杂,掌握难度较大,缺乏对于初学者入门级学习的研究,导致初学者大多难以适应。

本文基于NLP中基础性的文本情感分类项目,区别于传统的二分类问题,将情感类型细化为五类,更贴合生活实际,做出挑战。同时结合kaggle上的比赛数据实例,基于机器学习中的线性逻辑回归算法和朴素贝叶斯模型算法,完成了整个情感多分类项目流程并做出研究。针对初学者在数据处理、特征选择、模型网络构建、模型训练与测试过程中难以解决和易出错的部分做出了详细分析与说明,以帮助初学者进行NLP领域的项目学习。

1文本情感分类概述

文本情感分类是对带有情感色彩的主观性文本进行分析、处理、归纳和推理的过程,是NLP领域重要的基础领域,涉及文本分词、词语情感分析、机器学习、深度学习等。文本情感分类通过在现有的大量数据中,基于学习算法寻找并学习词语情感的规律,构建相应的分类函数或分类模型(分类器,Classi-fie),这样对于给定的其他文本将能做到文本情感分类[1]。

计算机并不能直接识别与处理所提供的自然语言数据,通常要对这些文本数据进行维度上的抽象处理[1]。基于机器学习算法的文本情感分类通常需要构建学习模型,针对已处理的数据进行重复的训练与测试,通过测试的反馈修正模型参数,使得分类模型具备更高的准确度。文本数据经过模型导出后将被划分到对应情感类别,实现文本情感分类。

2文本情感多分类项目设计与实现

文本情感多分类项目整体流程大致分为数据处理、特征选取、模型的构建、训练与测试,其中对于模型的处理,本文基于机器学习主要给出两种模型算法:线性逻辑回归模型和朴素贝叶斯模型。图1是项目结构框架图。

项目过程的功能与实现如下:

2.1数据处理

文本数据来源于Kaggle网站竞赛数据,数据包括四列,Phraseld(短语编号)、Sentenceld(句子编号)、Phrase(短语)和Sentiment(短语情感分类)。针对数据做出几点说明,一个句子可以划分成若干个短语,所以存在多个短语来源于同一个句子,其句子编号相同;情感分类是对每一个短语进行分类,情感类型划分为五类,用数字0-4标明,代表非常消极、消极、中性、积极、非常积极。

对数据梳理清楚后,需要对每个短语进行分词,英文文本分词相对简单,以空格为标志划分出每个单词。这里存在初学者的误区,一些诸如“a”的英文单词是否取舍不应该由停词表来决定。对此本文去掉停詞表,对统计到的单词计算每一个单词的频率,频率过大或过小的单词均去除。至此,数据处理完成,得到了所有有效单词的汇总与其频率,成功构建了词袋。

2.2特征选取

如英文单词,这些自然语言计算机无法处理,其二进制码也毫无意义,这使得特征选取工作变得困难。通常采取的是One-Hot编码(独热编码),统计所有的状态并对每一个状态独立编码,这样任意时刻每个状态的编码中只有一位是有效的[2]。但这样使用对初学者十分不友好,One-Hot编码后的数据维度将十分庞大,无论是计算机内存还是运行时间,其效率都变得十分低下。针对初学者,本文采取TfidfVectorizer函数,利用数据处理过程中得到的词袋,对单词进行状态编码,每一个单词都是被选取的特征。短语由若干个单词组成,这样每一个短语可以表示成单词编码的组合,于是得到了计算机可以处理的数据[3]。

最后,将处理好的数据划分为两类,一类作为训练数据,让模型进行学习,另一类作为测试数据,评价模型效果。

2.2线性逻辑回归模型

线性逻辑回归模型是机器学习中常见的模型算法,可以通过调用skleam库里的LogisticRegression函数,其作用是对输入短语的每一个维度数据(单词编码)分配一个可调整参数,使输出结果趋近短语的情感类型数字[4]。

每一轮训练都需要针对输出结果与实际结果的差距进行调整维度参数,对于如何评价差距,初学者很容易想到roc_auc评价方法,它是接收者操作特征曲线下的面积,可以有效避免假阳性和伪阴性数据的影响[5]。但这是一种初学者的误区,roc_auc方法只针对二分类问题,本文采取间接转化的方法,将五分类转化为多次二分类问题,首先中性与非中性数据的分类,然后是积极与消极数据的分类,最后是其内部程度的二分类。

另外提出,模型训练过程中是基于训练集数据不断学习,模型准确度也是基于这些已训练的数据,过度训练可能导致模型“僵化”,对新数据适应性较差。

模型除了对于输入数据的参数外还有自身的选择性参数,称为超参数,比如学习率等,如何调整合适的模型参数一直是初学者难以把握的问题,本文采用CridSearchCV函数对模型进行自动调参。它是网格搜索和交叉验证的结合,原理是在指定的参数范围内,按步长依次调整参数,利用调整的参数训练学习器,从所有的参数中找到在测试集上精度最高的参数,这其实是一个训练和比较的过程。

训练好模型后,对于新的文本数据,只要处理好数据特征,模型将会自动对文本进行情感分类。基于线性逻辑回归模型的文本情感分类,其最终准确度为0.768,较为可观。

2.3朴素贝叶斯模型

朴素贝叶斯模型是常见的分类模型之一,通过假设特征条件之间相互独立的方法,先通过已给定的训练集,学习从输入到输出的联合概率分布,进行模型的训练[6]。其算法原理是:

其中,d为样本数据集D的下标,x为样本特征数据集X特征,y为情感的类变量。通过MultinomiaINB函数可以调用朴素贝叶斯模型。

区别于线性逻辑回归模型处理的一点时,这里本文没有采用GridSearchCV网络搜索,准确度的评价采用Cross_val_score函数的十折交叉验证,最终模型准确度为0.743,略低于线性逻辑回归模型。

3项目结果与分析

情感分类本质是函数的映射,评价分类器的效果依据就是映射的准确度,除此之外还有模型的开销(速度与内存),评价的标准各异,本文采取准确率作为评价标准[1]。

项目过程中,通过从Kaggle上收集的比赛数据,进行线性逻辑回归和朴素贝叶斯两种模型的学习与误区难点研究,完成了文本情感多分类项目。两种模型得到的准确度分别为0.768、0.743,对于初学者而言,这种准确度已颇为可观。详细模型评测数据如表1所示。

4结束语

本文主要研究初学者在文本情感多分类项目过程中的误区与难点,同时做出了详细说明与解决方法,实现了基于机器学习的线性逻辑回归和朴素贝叶斯两种模型并详细介绍了项目过程中的各个步骤与相关原理,提出了基于传统二分类的多分类问题解决方法,最后给出了两种模型的评测结果。从评测结果来看,项目的准确度完全能满足初学者对于文本情感多分类的入门学习。进一步的研究是模型算法的改进,利用更先进的模型解决文本情感多分类问题,比较其性能效果,提高总体的准确度,同时满足初学者的学习。

参考文献:

[1]徐大伟,董渊,张素琴.文本分类技术在海洋信息处理领域中的应用[J].计算机科学,2008,35(11):144-146.

[2]严红.词向量发展综述[J].现代计算机,2019(8):50-52.

[3]郁可人.基于情感分类的特征表示研究[D].上海:华东师范大学.2019.

[4]张璞,李逍,刘畅.基于情感词汇与机器学习的方面级情感分类[J].计算机工程与设计,2020,41(1):128-133.

[5]杨俊杰.基于k近邻分类器ROC分析方法[D].广州:广东工业大学.2019.

[6]向志华,邓怡辰.基于机器学习的文本分类技术研究[J].软件,2019,40(9):94-97.

【通联编辑:唐一东】

收稿日期:2020-03-25

作者简介:刘呈(2000一),男,湖北黄冈人,本科,主要研究方向为自然语言处理。

猜你喜欢

文本分类自然语言处理机器学习
基于组合分类算法的源代码注释质量评估方法
前缀字母为特征在维吾尔语文本情感分类中的研究
基于支持向量机的金融数据分析研究