一种基于Fasttext的情感分类方法与流程

文档序号:21457224发布日期:2020-07-10 17:53阅读:844来源:国知局
一种基于Fasttext的情感分类方法与流程

本发明属于舆情分析技术领域。



背景技术:

随着我国计算机与互联网的高速发展,论坛、短信、微博、即时聊天记录等中文形式呈现出的短文本以爆炸式的趋势不断增长。这些短文本反应出了人们对现实生活的情感与观点,这些信息中蕴含着不同的情感趋势与特征,并对网络舆情的发展产生着重要的影响。分析与挖掘这些情感趋势对预测与监控网络舆情有着极其重要的意义。

随着数据量的大幅增长,我国进入了大数据时代,传统的短文本分类方法较慢,已经不能满足高速处理大量短文本信息的要求。fasttext是facebook开源的一个词向量与文本分类工具,在2016年由facebookairesearch提出,典型应用场景是“带监督的文本分类问题”。fasttext专注于文本分类,提供简单而高效的文本分类和表征学习的方法,在文本倾向性分析和标签预测上准确率更高且其准确率都在90%以上,性能比肩深度学习而且速度更快。fasttext模型输入一个词的序列,输出这个词序列属于不同类别的概率。序列中的词和词组组成特征向量,特征向量通过线性变换映射到中间层,中间层再映射到标签。fasttext在预测标签时使用了非线性激活函数,但在中间层不使用非线性激活函数。fasttext还加入了n-gram特征。在fasttext中一个低维度向量与每个单词都相关。隐藏表征在不同类别所有分类器中进行共享,使得文本信息在不同类别中能够共同使用。这类表征被称为词袋。fasttext中也使用向量表征单词n-gram来将局部词序考虑在内,这对很多文本分类问题来说十分重要。fasttext词向量的优势在于对大型数据量的文本进行训练时,在使用标准多核cpu的情况下10分钟内处理超过10亿个词汇”,特别是与深度模型对比,fasttext能将训练时间由数天缩短到几秒钟。使用一个标准多核cpu,得到了在10分钟内训练完超过10亿词汇量模型的结果。此外,fasttext还能在五分钟内将50万个句子分成超过30万个类别。fasttext也支持多语言表达,利用其语言形态结构,fasttext能够被设计用来支持包括中文、英语、德语等多种语言。



技术实现要素:

本发明的目的在于提供一种快速的、高效的短文本情感分类方法,该方法有利于提高短文本分类的精确度和速度。

为实现上述目的,本发明的技术方案是:一种基于fasttext的情感分类方法,本发明的技术步骤是:

步骤1:数据爬取。采用基于主题的微博信息采集方式,爬取新浪微博中关于食品安全的相关数据。

步骤2:文本预处理。主要包括文本分词和文本去停用词。

步骤3:评价指标确立。采用三种评估方式对实验结果进行分析评价,其中查准率表示真正分类准确数量在预测准确数量中所占比例,召回率代表分类准确数量与测试文本集中之比,f1则是对查准率与召回率的加权调和平均。

准确率(precision):

召回率(recall):

f1值:

其中,a是预测正确的各个类的数目,b是测试数据集中各个类的数目,c是预测结果中各个类的数目。

步骤4:fasttext分类。将文本预处理后得到的词序列转换为特征向量,fasttext引入了n-gram概念来解决词形变化的问题。在训练过程中,每个向量都对应一个n-gram,而原来单词的词向量就由它所对应的所有n-gram的向量求和得到。之后将特征向量通过线性变换送入到中间隐藏层,输出预测标签,得到属于不同类别词序列的概率。其中fasttext的模型优化目标如下:

步骤5:优化参数。通过大量实验对比准确率、召回率、f1值与分类时间找到适合短文本情感分类的fasttext参数。

步骤6:模型对比。通过与现在分类效果较好的word2vec算法进行对比,验证fasttext优势。

本发明基于fasttext的短文本情感分类,提供了在保证准确率的情况下对大量微博短文本信息进行快速情感分类的方法,在标准多核cpu下,fasttext能够提升分类准确度,并能将训练时间由数天缩短到几秒钟。

附图说明

图1为本发明的实现流程图。

具体实施方式

以下结合附图对本发明实施例做进一步详述:

图1是本发明的一种基于fasttext短文本情感分类方法的实现流程图。如图1所示,所述方法包括以下步骤:

步骤1:基于python编写的爬虫程序crawler首先对新浪微博网页进行结构解析,获取到微博主体之后再将事先设定的主题与用户所发微博文本内容的关键词进行对比,如果主题相契合,则下载页面并提取对应字段。

步骤2:采用jieba分词与自定义词典相结合,对数据进行分词处理。将百度停用词表、哈工大停用词表、四川大学机器智能实验室停用词表、符号等常用的停用词表组合并去重生成新停用词表,将分词后的数据与新词表进行对比,将匹配的词语删除。

步骤3:定义模型训练train函数,通过get_config()加载配置信息,之后将上述参数添加到keywargs.setdefault()方法中,并选择一部分预处理后的数据通过supervised方法训练fasttext模型。模型训练好后,从剩余文本中挑选一部分数据对模型进行测试,并观察其分类精度,并计算准确率、召回率与f1值。通过对比大量实验的召回率、准确率和f1值,本文找到了最适合对短文本数据进行情感分类的fasttext模型训练参数。

步骤4:对fasttext模型准确度进行测试,测试数据集大小对模型训练的影响。使用不同数量的数据作为训练集训练fasttext模型,得出训练模型数据越多,算法准确度越高的结论。

步骤5:为了验证fasttext的分类效果,分别使用fasttext与word2vec+svm算法对相同数量的数据进行情感分类,结果表明fasttext分类效果较好。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1