一种基于社交网络数据的情感分析方法
【专利摘要】本发明公开了一种基于社交网络数据的情感分析方法,包括:提取用户在社交网络平台上的发布数据;利用标注器对发布数据进行分词和标注;对进行分词和标注后的发布数据进行文本预处理和依存解析;将进行了文本预处理和依存解析后的发布数据划分为训练集和预测集;分别对训练集或预测集的发布数据进行情感分类特征提取;采用线性支持向量机模型对在训练集上提取的情感分类特征进行训练,获得情感分析分类器;采用情感分析分类器对预测集中的情感分类特征进行分析,预测出用户在社交网络平台上发布的目标数据的情感倾向。本发明针对社交网络数据的特点,有效提高对情感倾向预测的准确性。
【专利说明】
一种基于社交网络数据的情感分析方法
技术领域
[0001]本发明涉及人工智能技术领域,尤其涉及一种基于社交网络数据的情感分析方法。
【背景技术】
[0002]随着社交网络的迅速发展,各种社交网络平台,如推特(Twitter)等,正逐渐被公众广泛接受,用户在这些社交网络平台上发布的数据信息(俗称“微博”)亦呈海量增长。由于受到字数的限制,且用户常常是随性而作,微博的语句中往往使用了许多非正式文本的网络用语,包括各种具有情感含义的标点符号和表情、缩略词、俚语、新词、网页链接等信息,并具有简短、口语化、易出现拼写错误等特点。这导致传统的处理正式文本情感分类的方法在应用到社交网络平台的数据分析上时效果不理想,而如何根据社交网络数据的特点进行文本处理,并分析其所表达情感成为了一个新的技术难题。
[0003]传统的文本分类方法常用词汇向量化方法来描述文本特征,并以期限频率逆文档频度(TF-1DF)作为权重指标。这种从情感词汇角度作为切入点,以词频作为特征向量的情感分析方法适用于文本分类模型。情感分析的研究目的旨在对文本所表达的感情倾向进行分类,如褒义(Positive),贬义(Negative),中立(Neutral)等。但现有情感分析模型适用于正式文本,并未考虑词汇间的关系和句子结构特征,无法处理这种简短、带有较多表情符号、拼写错误且句法结构模糊的社交网络数据。
【发明内容】
[0004]本发明所要解决的技术问题是,提供一种基于社交网络数据的情感分析方法,针对社交网络数据的特点,提高对社交网络数据的情感倾向预测的准确性。
[0005]为解决以上技术问题,本发明实施例提供一种基于社交网络数据的情感分析方法,包括:
[0006]根据用户序列号,通过API接口并使用Python脚本提取用户在社交网络平台上的发布数据;
[0007]利用标注器对所述发布数据进行分词和标注;所述标注包括词性标注和符号标注;
[0008]对进行分词和标注后的发布数据进行文本预处理和依存解析,过滤冗余数据,获取句法结构特征和词汇之间的依存关系;
[0009]将进行了文本预处理和依存解析后的发布数据划分为训练集和预测集;
[0010]分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取;
[0011]采用线性支持向量机模型对在所述训练集上提取的情感分类特征进行训练,获得情感分析分类器;
[0012]采用所述情感分析分类器对所述预测集中的情感分类特征进行分析,预测出用户在社交网络平台上发布的目标数据的情感倾向。
[0013]在一种可实现的方式中,所述对进行分词和标注后的发布数据进行文本预处理,包括:
[0014]对发布数据中无关情感倾向的数据进行过滤;对发布数据中的表情符号的感情倾向进行归类和标注;所述感情倾向划分为极其褒义,褒义,中立,贬义和极其贬义五种类型。
[0015]进一步地,所述对进行分词和标注后的发布数据进行文本预处理,还包括:
[0016]对发布数据中的缩略词进行扩展还原,并对所述缩略词在发布数据中出现的频度;对发布数据中的重复字符进行统一化字符替换;以及,查找发布数据中的否定词,并标记出所述否定词在发布数据中的位置。
[0017]优选地,所述采用线性支持向量机模型对在所述训练集上提取的情感分类特征进行训练,获得情感分析分类器,包括:
[0018]利用所述线性支持向量机模型,将训练集的样本空间映射到一个高维特征空间,并在所述高维特征空间上构建全局最优的分割超平面,生成情感分析分类器;为所述线性支持向量机模型设定对离群点的惩罚因子,以权衡样本点与模型之间的拟合。优选地,所述对离群点的惩罚因子的值为0.005。
[0019]优选地,所述词汇之间的依存关系通过依存类型、主导词和依存词进行描述;每个词汇在其所属依存关系中作为主导词或依存词;所述依存关系包括:形容词补充、副词修饰、形容词修饰、名词主语、被动型名词主语中的任意一项。
[0020]在一种可实现的方式中,所述分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取,包括:
[0021 ]提取用于描述发布数据的文体风格及其表达方式的文体特征。
[0022]进一步地,所述分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取,还包括:
[0023]根据发布数据的句法结构及词汇之间的依存关系,确定所述发布数据的依存关系的类型;分别计算依存关系中主导词和依存词的句法特征,所述句法特征包括总情感值、情感值为零的频度、最大正向情感值、最大负向情感值;将不同情感词典的句法特征进行合并,获得当前发布数据的句法特征;所述情感词典包含情感词语及其正向情感值和负向情感值。
[0024]进一步地,所述分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取,还包括:
[0025 ]根据所述感情词典以及发布数据中每个词汇的情感值,将发布数据中的词汇划分为全单词组,正向情感值单词组,负向情感值单词组;在所述全单词组中提取最后一个词汇的情感值、所有单个词汇的总情感值、所有两个连续词汇的总情感值、所有不连续词汇的总情感值,以及,情感值不为零的词汇数目,作为所述全单词组的情感词典特征;在所述正向情感值单词组和所述负向情感值单词组中,分别提取情感值绝对值的最大值、所有单个词汇的总情感值,以及,词汇数目,作为所述正向情感值单词组或所述负向情感值单词组对应的情感词典特征;将不同情感词典的各个情感值分组的情感词典特征进行合并,获得当前发布数据的情感词典特征。
[0026]再进一步地,所述分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取,还包括:
[0027]根据所述感情词典以及发布数据中每个词汇的词性,将发布数据中的词汇划分为形容词组,名词组,动词组和代词组;对每个词性分组分别提取正向情感值的最大值,负向情感值的最小值,所有单个词汇的总情感值,以及,情感值不为零的单词数目,作为各个词性分组的情感词典特征;将不同情感词典的各个情感值分组和各个词性分组的情感词典特征进行合并,获得当前发布数据的情感词典特征。
[0028]本发明实施例提供的基于社交网络数据的情感分析方法,基于社交网络数据文本的特点进行特征提取,大大提高了情感分析模型处理社交网络数据的准确性。本发明通过对社交网络数据进行文本预处理,分析社交网络数据的文本表达特点,提取与用户情感倾向相关的文体特征;并且,进一步借助依存解析器和情感字典,实现社交网络数据的句法特征和情感词典特征的提取;基于线性的支持向量机模型对在训练集中提取的情感分类特征进行训练,从而获得面向社交网络数据特点的情感分析分类器,并通过该情感分析分类器对作为分析目标的预测集的情感分类特征进行分析,从而预测出当前目标用户所发布的社交网络数据的情感倾向,提高预测的准确性。
【附图说明】
[0029]图1是本发明提供的基于社交网络数据的情感分析方法的一个实施例的步骤流程图。
[0030]图2是本发明提供的对社交网络数据进行文本预处理的一种可实现方式的步骤流程图。
【具体实施方式】
[0031]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
[0032]参见图1,是本发明提供的基于社交网络数据的情感分析方法的一个实施例的步骤流程图。
[0033]具体地,所述的基于社交网络数据的情感分析方法主要包括两大主要过程:首先,训练过程,即基于支持向量机模型对用户发布的社交网络数据(简称“发布数据”)进行特征训练;第二,预测过程,即根据训练过程所获得的情感分析分类器对当前的目标社交网络数据进行情感预测。
[0034]本实施例提供的基于社交网络数据的情感分析方法,主要包括以下步骤:
[0035]步骤S1:根据用户序列号(ID),通过API(Applicat1nProgramming Interface,应用程序编程接口)接口并使用Python脚本提取用户在社交网络平台上的发布数据;Python作为一种面向对象、直译式的计算机程序语言,支持命令式程序设计、面向对象程序设计、函数式编程、面向侧面的程序设计、泛型编程多种编程范式,适用于处理系统管理任务和网络程序编写以及各种高级任务。
[0036]步骤S2:利用标注器对所述发布数据进行分词和标注;所述标注包括词性标注和符号标注。例如,对于社交网络平台Twitter,可以采用Twitter NLP (Natural LanguageProcessing,自然语言处理)工具对用户在Twitter平台上所发布的“微博”数据进行分词和词性标注,并对微博的部分特殊数据进行特殊标注,如@,#,表情符号等。
[0037]步骤S3:对进行分词和标注后的发布数据进行文本预处理和依存解析,过滤冗余数据,获取句法结构特征和词汇之间的依存关系。文本预处理和依存解析的主要目的是借助表情词典和缩略词词典等外部资源,使得被分词和标注后的用户发布数据被进一步处理成更容易生成分类特征的形式。其中,文本预处理过程有助于提取文体特征,依存解析有助于提取句法特征和情感词典特征。
[0038]具体实施时,所述词汇之间的依存关系通过依存类型、主导词(Governor)和依存词(Dependent)进行描述;每个词汇在其所属依存关系中作为主导词或依存词;在本实施例中,所述依存关系包括但不限于:形容词补充(Adjective Complement)、副词修饰(AdverbModifier)、形容词修饰(Adjective Modifier)、名词主语(Nominal Subject)、被动型名词主语(Passive Nominal Subject)中的任意一项。对于每一条用户在社交网络平台上发布的社交网络数据(如微博),无论是单句或是多句的情况,均进行依存解析,并可进一步依据情感词典及其依存关系提取句法特征。
[0039]步骤S4:将进行了文本预处理和依存解析后的发布数据划分为训练集和预测集;其中,训练集主要用于生成情感分析分类器;预测集主要用于测试,即分析当前待预测的用户在社交网络平台上的发布数据的情感倾向。
[0040]步骤S5:分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取;
[0041]步骤S6:采用线性支持向量机模型对在所述训练集上提取的情感分类特征进行训练,获得情感分析分类器;
[0042]步骤S7:采用所述情感分析分类器对所述预测集中的情感分类特征进行分析,预测出用户在社交网络平台上发布的目标数据的情感倾向。
[0043]具体实施时,如图1所示,训练集和预测集的社交网络数据的提取过程与特征提取过程之间(步骤SI?步骤S3)所采用的技术手段和工作原理可以是一致的。在本实施例中,对训练集中的用户社交网络数据进行特征训练的目的是获得可以表征社交网络数据特点的特征分类器,以便于在对目标预测集中的发布数据进行情感预测时,获得准确的预测结果O
[0044]参看图2,是本发明提供的对社交网络数据进行文本预处理的一种可实现方式的步骤流程图。
[0045]在一种可实现的方式中,本实施例的步骤S3在对进行分词和标注后的发布数据进行文本预处理时,具体包括:
[0046]步骤S31:对发布数据中无关情感倾向的数据进行过滤;譬如,字符“@,,,各种链接,以及非英文词汇等。
[0047]步骤S32:对发布数据中的表情符号的感情倾向进行归类和标注;所述感情倾向划分为极其褒义(ExtremeIy Positive),褒义(Positive),中立(Neutral),贬义(Negative)和极其贬义(Extremely Negative)五种类型。社交网络平台的用户发布数据中经常使用表情符号来表达情感倾向,因此,与表情符号相关的分类特征对预测准确度有很大的提升。具体实施时,本实施例根据社交网络平台的表情词典对发布数据中的表情符号的感情倾向进行归类并标注。
[0048]进一步地,步骤S3在对进行分词和标注后的发布数据进行文本预处理时,还包括:
[0049]步骤S33:对发布数据中的缩略词进行扩展还原,并对所述缩略词在发布数据中出现的频度;具体实施时,本实施例根据缩略词词典进行缩略词还原,并统计缩略词、俗语等在用户发布的社交网络数据中出现的频度。
[0050]步骤S34:对发布数据中的重复字符进行统一化字符替换。譬如,社交网络平台“微博”上发布的社交网络数据中经常出现一长串同样的字母来表达强调语气或情感,对于单个词汇中连续重复出现次数超过3个的字母,统一替换为3个该字母;统一处理后该单词仍然与其正确拼写不一致,以达到区分分类特征的目的。
[0051]步骤S35:查找发布数据中的否定词,并标记出所述否定词在发布数据中的位置。具体地,否定文本的标记,包括否定词查找,确定否定文本区间,判断情感倾向变化。其中,本实施例中的“否定文本”或“否定词”的可定义如下:从否定词出现至
“!”、“?”中的其中一个标点符号出现之间的用户发布数据(如“微博”)文本。
[0052]在完成文本预处理和依存解析的基础上,对每条用户发布的社交网络数据进行情感分类特征提取,其中,所述情感分类特征包括文体特征,句法特征和情感词典特征,所述步骤S5具体的特征提取实现过程如下:
[0053](I)、提取用于描述发布数据的文体风格及其表达方式的文体特征。在本实施例中,文体特征用于描述社交网络数据的文体风格及其表达方式,包括但不限于全部大写字母组成的单词,含重复多次相同字母的单词,不同词性种类单词的频度,不同特殊标点符号的频度及其位置信息,不同情感倾向表情的频度及其位置信息,否定文本的频度及其在位置信息,强调词的频度及其位置信息。
[0054](2)、提取用于描述发布数据的句法结构及句子词汇之间的关系的句法特征,包括:根据发布数据的句法结构及词汇之间的依存关系,确定所述发布数据的依存关系的类型;分别计算依存关系中主导词和依存词的句法特征,所述句法特征包括总情感值、情感值为零的频度、最大正向情感值、最大负向情感值;将不同情感词典的句法特征进行合并,获得当前发布数据的句法特征;所述情感词典包含情感词语及其正向情感值和负向情感值。具体地,判断不同依存关系是否在发布数据中出现,计算形容词修饰、副词修饰和同位语修饰等依存关系中依存词的总情感值、情感值为“O”的频度、最大正向情感值、最大负向情感值;计算名词主语和被动型名词主语依存关系中主导词的总情感值、情感值为“O”的频度、最大正向情感值、最大负向情感值。对于每个不同的情感词典,分别计算上述句法特征,最终将对应不同情感词典的句法特征合并得到该发布数据的句法特征信息。
[0055](3)、提取用于描述发布数据的情感词汇的情感倾向的情感词典特征,包括:
[0056]根据所述感情词典以及发布数据中每个词汇的情感值,将发布数据中的词汇划分为全单词组,正向情感值单词组,负向情感值单词组;在所述全单词组中提取最后一个词汇的情感值、所有单个词汇的总情感值、所有两个连续词汇的总情感值、所有不连续词汇的总情感值,以及,情感值不为零(O)的词汇数目,作为所述全单词组的情感词典特征;在所述正向情感值单词组和所述负向情感值单词组中,分别提取情感值绝对值的最大值、所有单个词汇的总情感值,以及,词汇数目,作为所述正向情感值单词组或所述负向情感值单词组对应的情感词典特征;将不同情感词典的各个情感值分组的情感词典特征进行合并,获得当前发布数据的情感词典特征。
[0057]进一步地,对情感词典特征进行提取时,还包括:
[0058]根据所述感情词典以及发布数据中每个词汇的词性,将发布数据中的词汇划分为形容词组,名词组,动词组和代词组;对每个词性分组分别提取正向情感值的最大值,负向情感值的最小值,所有单个词汇的总情感值,以及,情感值不为零(O)的单词数目,作为各个词性分组的情感词典特征;将不同情感词典的各个情感值分组和各个词性分组的情感词典特征进行合并,获得当前发布数据的情感词典特征。
[0059]最后,通过所述步骤S6训练获得情感分析分类器对预测集中的情感分类特征进行分析,预测出用户在社交网络平台上发布的目标数据的情感倾向。
[0060]在本实施例的步骤S6进行特征训练时,其具体包括:利用所述线性支持向量机模型,将训练集的样本空间映射到一个高维特征空间,并在所述高维特征空间上构建全局最优的分割超平面,生成情感分析分类器;为所述线性支持向量机模型设定对离群点的惩罚因子C,以权衡样本点与模型之间的拟合。优选地,所述对离群点的惩罚因子C的值为0.005。
[0061]预测过程与训练过程相似,每条用户发布的“微博”数据(社交网络数据的一种)经过文本预处理与依存解析后,分别提取文体特征、句法特征和情感词典特征。两者的主要区别是,在预测过程中,通过上述训练过程中已训练完毕的情感分析分类器,根据当前社交网络数据的分类特征预测其情感倾向。
[0062]本发明实施例采用标注器、表情词典、缩略词词典等工具进行社交网络数据的文本预处理,考虑表情符号、缩略词、含有重复多个相同字母的词汇、特殊标点符号、否定文本等多种情况,并在此基础上提取社交网络数据的文体特征;并进一步依据词汇之间的关系和句子结构特征,利用依存解析器分析社交网络数据文本词汇间的依存关系,并根据依存类型判断主导词或依存词对语句情感倾向的影响,结合词汇情感值信息形成社交网络数据的句法特征,克服了现有情感分析模型仅适用于正式文本,无法处理类似“微博”这种简短、带有较多表情符号、拼写错误且句法结构模糊的社交网络数据的缺陷。
[0063 ]本发明实施例提供的基于社交网络数据的情感分析方法,基于社交网络数据文本的特点进行特征提取,大大提高了情感分析模型处理社交网络数据的准确性。本发明通过对社交网络数据进行文本预处理,分析社交网络数据的文本表达特点,提取与用户情感倾向相关的文体特征;并且,进一步借助依存解析器和情感字典,实现社交网络数据的句法特征和情感词典特征的提取;基于线性的支持向量机模型对在训练集中提取的情感分类特征进行训练,从而获得面向社交网络数据特点的情感分析分类器,并通过该情感分析分类器对作为分析目标的预测集的情感分类特征进行分析,从而预测出当前目标用户所发布的社交网络数据的情感倾向,提高预测的准确性。
[0064]以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
【主权项】
1.一种基于社交网络数据的情感分析方法,其特征在于,包括: 根据用户序列号,通过API接口并使用Python脚本提取用户在社交网络平台上的发布数据; 利用标注器对所述发布数据进行分词和标注;所述标注包括词性标注和符号标注; 对进行分词和标注后的发布数据进行文本预处理和依存解析,过滤冗余数据,获取句法结构特征和词汇之间的依存关系; 将进行了文本预处理和依存解析后的发布数据划分为训练集和预测集; 分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取; 采用线性支持向量机模型对在所述训练集上提取的情感分类特征进行训练,获得情感分析分类器; 采用所述情感分析分类器对所述预测集中的情感分类特征进行分析,预测出用户在社交网络平台上发布的目标数据的情感倾向。2.如权利要求1所述的基于社交网络数据的情感分析方法,其特征在于,所述对进行分词和标注后的发布数据进行文本预处理,包括: 对发布数据中无关情感倾向的数据进行过滤; 对发布数据中的表情符号的感情倾向进行归类和标注;所述感情倾向划分为极其褒义,褒义,中立,贬义和极其贬义五种类型。3.如权利要求2所述的基于社交网络数据的情感分析方法,其特征在于,所述对进行分词和标注后的发布数据进行文本预处理,还包括: 对发布数据中的缩略词进行扩展还原,并对所述缩略词在发布数据中出现的频度; 对发布数据中的重复字符进行统一化字符替换;以及, 查找发布数据中的否定词,并标记出所述否定词在发布数据中的位置。4.如权利要求1所述的基于社交网络数据的情感分析方法,其特征在于,所述采用线性支持向量机模型对在所述训练集上提取的情感分类特征进行训练,获得情感分析分类器,包括: 利用所述线性支持向量机模型,将训练集的样本空间映射到一个高维特征空间,并在所述高维特征空间上构建全局最优的分割超平面,生成情感分析分类器; 为所述线性支持向量机模型设定对离群点的惩罚因子,以权衡样本点与模型之间的拟入口 ο5.如权利要求4所述的基于社交网络数据的情感分析方法,其特征在于,所述对离群点的惩罚因子的值为0.005。6.如权利要求1所述的基于社交网络数据的情感分析方法,其特征在于,所述词汇之间的依存关系通过依存类型、主导词和依存词进行描述;每个词汇在其所属依存关系中作为主导词或依存词; 所述依存关系包括:形容词补充、副词修饰、形容词修饰、名词主语、被动型名词主语中的任意一项。7.如权利要求6所述的基于社交网络数据的情感分析方法,其特征在于,所述分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取,包括: 提取用于描述发布数据的文体风格及其表达方式的文体特征。8.如权利要求7所述的基于社交网络数据的情感分析方法,其特征在于,所述分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取,还包括: 根据发布数据的句法结构及词汇之间的依存关系,确定所述发布数据的依存关系的类型; 分别计算依存关系中主导词和依存词的句法特征,所述句法特征包括总情感值、情感值为零的频度、最大正向情感值、最大负向情感值; 将不同情感词典的句法特征进行合并,获得当前发布数据的句法特征;所述情感词典包含情感词语及其正向情感值和负向情感值。9.如权利要求8所述的基于社交网络数据的情感分析方法,其特征在于,所述分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取,还包括: 根据所述感情词典以及发布数据中每个词汇的情感值,将发布数据中的词汇划分为全单词组,正向情感值单词组,负向情感值单词组; 在所述全单词组中提取最后一个词汇的情感值、所有单个词汇的总情感值、所有两个连续词汇的总情感值、所有不连续词汇的总情感值,以及,情感值不为零的词汇数目,作为所述全单词组的情感词典特征; 在所述正向情感值单词组和所述负向情感值单词组中,分别提取情感值绝对值的最大值、所有单个词汇的总情感值,以及,词汇数目,作为所述正向情感值单词组或所述负向情感值单词组对应的情感词典特征; 将不同情感词典的各个情感值分组的情感词典特征进行合并,获得当前发布数据的情感词典特征。10.如权利要求9所述的基于社交网络数据的情感分析方法,其特征在于,所述分别对所述训练集或所述预测集的每一条发布数据进行情感分类特征提取,还包括: 根据所述感情词典以及发布数据中每个词汇的词性,将发布数据中的词汇划分为形容词组,名词组,动词组和代词组; 对每个词性分组分别提取正向情感值的最大值,负向情感值的最小值,所有单个词汇的总情感值,以及,情感值不为零的单词数目,作为各个词性分组的情感词典特征; 将不同情感词典的各个情感值分组和各个词性分组的情感词典特征进行合并,获得当前发布数据的情感词典特征。
【文档编号】G06K9/62GK106096664SQ201610475678
【公开日】2016年11月9日
【申请日】2016年6月23日
【发明人】肖文晗, 谭浩宇
【申请人】广州云数信息科技有限公司