1.一种基于网购评价的细粒度情感分析方法,其特征在于,包括以下步骤:步骤1:网购评价数据集的采集;
步骤2:网购评价数据的预处理;
步骤3:确定最终的实验数据并划分数据集;
步骤4:采用字向量进行文本的训练;
步骤5:建立BiLSTM-CRF改进模型,输入字向量和词语位置结合的特征;
步骤6:训练BiLSTM-CRF改进模型并进行情感分析。
2.如权利要求1所述的一种基于网购评价的细粒度情感分析方法,其特征在于,所述步骤1使用Python语言从网购平台网页HTML标签抓取数据,具体包括:步骤1.1:打开网购平台网站需要爬取的网页文件,分析页面结构,获取url参数,找到url参数数值大小变化的规律;
步骤1.2:打开对应的网页获取到网络地址url,找到网页源代码中的评论数据,然后采用requests的get方法发送网页访问请求,接收到的Response里包含了网页数据,采用BeautifulSoup解析数据,获得只包含评论数据的数据包;
步骤1.3:采用python的正则表达式模块:re模块的findall方法对网页数据进行筛选,获得需要的数据;
步骤1.4:存储数据为txt文本。
3.如权利要求2所述的一种基于网购评价的细粒度情感分析方法,其特征在于,所述步骤2具体包括:步骤2.1:语料库的构建
结合产品评价属性级别情感分析的需求,制定四要素标注体系,定义如下:Model={Sentence,Aspect,Emotion,Polarity} (1)式(1)中:Sentence表示原始的评论句子;Aspect表示句子中的属性词,若有多个属性词用英文的分号隔开;Emotion表示句子中的情感词;Polarity表示是情感词的极性判断,分为正面、中立和负面,取值为(1,0,-1);
步骤2.2:实验数据处理
步骤2.2.1:使用{B,I,O}方式进行序列标注,其中B表示目标词汇的开始,I表示目标词汇的剩余部分,O表示不属于目标词汇的其它词汇;具体的标注定义如下表1所示:表1 实验数据标注定义
步骤2.2.2:对评论语料的句子进行停用词处理,包括去除标点符号、英文字符和数字等其它非中文符号;
步骤2.2.3:分别判断句子中的每个字属于属性词还是情感词,如果是属性词,继续判断改字是否属于属性词的第一个字,如果成立,则将改字标注为B-ASP;如果是情感词再根据“sentiment_anls-情感正负面”列的数据,将情感词直接标定为对应的极性标签。
4.如权利要求3所述的一种基于网购评价的细粒度情感分析方法,其特征在于,所述步骤3中通过去重和无关评论筛选,确定最终的实验数据,并按照6:2:2的比例进行训练集、验证集和测试集的划分。
5.如权利要求4所述的一种基于网购评价的细粒度情感分析方法,其特征在于,所述步骤4具体包括:步骤4.1:采用维基百科和手机领域的评价数据作为训练语料;
步骤4.2:将训练语料中的所有字建立一个查找表,查找表是一个数字序列,每个字对应一个序列编号;
步骤4.3:采用Gensim里的CBOW模型进行训练,训练参数如下表2所示;
表2 字向量训练参数
步骤4.4:将训练好的向量初始化查找表。
6.如权利要求5所述的一种基于网购评价的细粒度情感分析方法,其特征在于,所述步骤5的BiLSTM-CRF改进模型第一层是输入层,第二层是双向LSTM层,第三层是CRF层,具体步骤为:步骤5.1:首先将步骤2.2.1中标签信息总结定义为如式(2)所示,然后将式(2)标签信息采用数字的形式进行标识,如式(3)所示;再将文本序列进行分词后,提取词语的位置信息;最后将向量、标签信息标识、词语位置信息共同输入BiLSTM-CRF改进模型;
{O,B-ASP,I-ASP,B-POS,I-POS,B-NEG,I-NEG,B-ZER,I-ZER} (2)步骤5.2:自动提取句子特征,向量序(x1,x2,…,xn)列是双向LSTM的输入,将正向LSTM的输出序列 与反向LSTM的输出序列 按位置进行拼接 得到完整的序列,再设置dropout后,接入一个线性层,将序列进行维度转换后为提取的句子特征,记作矩阵P=(p1,p2,…,pn),pi中的每一维pij代表将字xi分类到第j个标签的非归一化概率;
步骤5.3:进行句子级的序列标注,CRF层存在一个转移矩阵A,Aij代表标签i转移到标签j的转移概率,对于一个输入序列x=(x1,x2,…,xn)对应的预测标签序列y=(y1,y2,…,yn),预测得分的计算如下:由式(4)可知整个序列的预测得分等于各个位置的得分之和,并且由双向LSTM层的输出矩阵和CRF的转移矩阵决定,对其进行归一化后的概率:模型训练时通过最大似然估计得到最优标注序列,公式如(6)所示:模型在预测过程使用动态的Viterbi算法求解最优路径如式(7)所示:
7.如权利要求6所述的一种基于网购评价的细粒度情感分析方法,其特征在于,所述步骤6具体包括:采用Adam算法使模型收敛和对参数进行更新,同时在训练网络的每个节点引入Dropout;训练过程中使用Adma优化算法进行网络参数的优化,其中β1=0.9,利用Adam算法对参数进行更新,通过不断地参数调节,将模型的学习率设置为lr=0.001,批处理的样本数设置为batch_siz=20.0,随机抽取训练节点占总节点的数目设置为dropout_keep=
0.5,使用预训练向量设置为pre_emb=false;根据迭代次数遍历整个训练样本集,保存训练好的网络模型的结构及参数;此后如步骤5.2向每个节点引入Dropout。