APP下载

基于BERT和LDA模型的酒店评论文本挖掘

2023-08-10綦方中田宇阳

计算机应用与软件 2023年7期
关键词:语料分类文本

綦方中 田宇阳

(浙江工业大学管理学院 浙江 杭州 310023)

0 引 言

近年来,随着我国经济的飞速发展,人们外出旅游、出差等活动的需求大大提高,这也给时下酒店行业的崛起创造了良好的条件。旅客可线上预订住宿和餐饮等服务,在订单完成后根据自身体验进行在线点评,而在线评论文本包含了用户对酒店位置、硬件设施、房间质量、服务态度等多个维度的信息,能够反映顾客对入住体验的直观感受。酒店管理者需要将在线评论文本转化为核心洞察力,从中全面探知用户的关注和偏好,发现隐藏在其中的问题并解决,以保持强大的市场竞争力。因此,对酒店评论文本进行情感分类和主题挖掘是十分重要的。

情感分类的目的是通过分析某条评论文本的具体内容,将其划分为正向情感类或负向情感类。常见的情感分类方法有两种,一种是基于情感词典的方法,如何构建高质量的情感词典是此方法的关键,例如,赵妍妍等[1]使用文本统计算法构建了一个词汇量达到十万的情感词典。周剑峰等[2]根据匹配模型在语料中获取情感词,结合统计方法和PMI-MB算法构建了微博情感词典。Yu等[3]将现有情感词典中的词语作为种子词,用PMI算法计算出每个词语的情感极性从而判断出文本的情感倾向。另一种情感分类方法则是有监督的机器学习方法,该方法通常是将带有情感极性标注的文本作为训练集并基于机器学习算法来构造分类器模型,例如,Pang等[4]最早将机器学习算法应用于情感分类中,分别使用朴素贝叶斯、最大熵模型和支持向量机来构建分类器。李杰等[5]则将深度学习方法应用到了情感分类任务中,该方法借助卷积神经网络强大的特征学习能力成功克服了特征抽取中的困难。

文本主题挖掘通常要用到主题概率模型,目前常见的主题概率模型有PLSA(Probabilistic Latent Semantic Analysis)和LDA,且LDA模型实质上就是在PLSA的基础上加入了Dirichlet先验分布[6],张敏[7]以某电商平台上的购买用户评论数据为基础,构建了LDA主题模型,实现了对文本主题的提取和隐藏信息的挖掘。王少鹏等[8]将TF-IDF算法与LDA模型相结合来计算文本的相似度,进而将高校论坛数据进行了文本聚类。

在酒店评论领域,基于中文语料的相关研究尚处于起步阶段,研究方法种类众多且主要以定量研究为主,陈柯宇等[9]利用Word2Vec工具扩充公共情感词典从而得到了酒店领域的情感词典。李胜宇等[10]结合酒店评论的句式特征和语法特点,解决了此前情感词匹配出现错误的问题。熊伟等[11]利用文本挖掘技术的批量处理功能结合时间序列分析法预测了某商务酒店未来的发展趋势。吴维芳等[12]从评论文本的角度建立了消费者满意度与酒店特征之间的关系,发现了用户满意度的影响因素。高保俊等[13]引入订满率取代评论数量,研究了酒店的用户推荐比率和位置评分等因素对酒店订满率的影响。朱晓晴等[14]分析了酒店在线评论与酒店服务质量之间的关系并总结了影响服务质量的因素。整体而言,基于中文语料的酒店评论文本的研究成果正在逐年上升,但适用性较高的模型还未形成。已有研究主要是考虑如何构建酒店评论领域的情感词典或是通过传统的词向量模型来生成词向量并输入到机器学习模型中进行训练,但构建情感词典的成本较高,传统的词向量模型又不能很好地捕捉文本的双语义特征且其计算效率低下。另外,酒店评论文本的数量庞大,存在总结词和评价词众多、转折词和关键词出现频率高、句式口语化严重、网络流行词和特殊符号泛滥等特点,仅仅通过情感分析的结果显然无法彻底地挖掘出蕴含在文本内部的深层语义信息。

针对以上问题,本文提出一种适用于酒店评论的BERT-LDA文本挖掘方法。研究思路如下:利用中文维基百科语料库训练BERT模型来获取文本特征向量,将事先经过情感极性标注的酒店评论文本划分为训练集和测试集结合深度学习算法训练情感极性分类器,通过网络爬虫获取“携程旅行”平台上的评论语料,经预处理后传入情感极性分类器得到评论语料的情感二分类结果,依据分类结果分别对正向评论和负向评论进行LDA主题模型的构建以获取特征主题词及对应的概率分布,最后系统化地梳理和概括主题聚类的结果,对酒店管理者提出可供参考的建议。

1 相关理论分析

1.1 BERT

BERT是谷歌于2018年提出的Transformer模型中衍生出来的预训练语言模型,目前Transformer模型在自然语言处理领域已经拥有了广泛的应用。作为一种Seq2Seq模型,Transformer由编码器(Encoder)和解码器(Decoder)两大部分组成,BERT模型便是Transformer的编码器部分。在此前的研究中,解决序列问题的方法通常是基于循环神经网络(RNN)实现的,但RNN反复循环迭代的训练方式使得其计算速度较慢,Transformer却能通过并行训练的方式大幅度提升计算的效率。

BERT的结构如图1所示。模型的每个基本层包含两个子层,其中,一个是采用多头注意力机制(Multi-Head Attention)的自注意力(Self-Attention)层;另一个则是全连接的前馈神经网络层(Feed Forward),每个子层的输出都会经过一个Add&Norm层。此外,模型还引入一个位置编码(Position Encoding)的概念来解决传入到自注意力层中的特征缺乏位置信息的问题。

图1 BERT模型结构

Transformer模型没有类似于RNN的循环迭代操作,因此需通过位置编码来给模型提供每个字的位置信息,从而模型才拥有了识别语言序列中顺序关系的能力。位置编码使用了不同频率的正弦函数和余弦函数来替代每一处位置信息,文献[15]给出了计算公式。

PE(pos,2i)=sin(pos/10 0002i/dmodel)

PE(pos,2i+1)=cos(pos/10 0002i/dmodel)

(1)

式中:pos指句子中字的位置,i是字向量的维度,dmodel是嵌入的维度,公式所得到的位置编码的维度和dmodel相同,故二者可以相加。分别用正弦和余弦函数做处理可以产生不同的周期性变化,模型由此可以获取位置之间的关系和语言的时序特性。

自注意力机制(self-attention)是BERT的核心部分,为了清晰地解释其原理,这里引入相关公式加以描述。S是由若干句子组成的集合,它的维度为batch_size×sequence_length,其中batch_size指句子的数量,sequence_length指句子长度,在字向量表中获取相应的嵌入Embedding(S)再加上位置编码特征Position Encoding得到最终的嵌入特征Sembedding,它的维度为batch_size×sequence_length×embedding_dimension,其中embedding_dimension表示字向量的维度即每个字的特征表达,具体公式表达为:

Sembedding=Embedding(S)+PositionEncoding

(2)

接下来对每一个特征输入做线性映射,分配三个权重矩阵WQ、WK和WV,它们的维度都是embedding_dimension×embedding_dimension,线性映射以后,便可得到每个输入的Query向量(Q)、Key向量(K)和Value向量(V),并且三个向量的维度与线性映射前的维度一致。线性映射的计算方法为:

Q=SembeddingWQ

K=SembeddingWK

V=SembeddingWV

(3)

多头注意力机制便是将Q、K和V在embedding_dimension这个维度平均分割成h份,h是人为设定的一个超参数即为头(head)的数量。对于每个注意力头,计算公式为:

Add&Norm层(残差连接和层归一化)的存在是为了解决深度学习中的退化问题。在得到Attention(Q、K、V)之后,接下来每经过一个模块的运算,都要将运算前后的结果相加,这便是Add(残差连接)的操作,这可使得在训练过程中后层的梯度跨层反传到初始层从而防止梯度消失现象的发生。Norm(层归一化)可以将神经网络中的隐藏层归一化为标准正态分布,以起到加快训练速度的作用。

此外,BERT模型主要以MLM(Masked Language Model)和NSP(Next Sentence Prediction)两种方式来进行训练。其中MLM是随机遮盖或替换一句话中的某些字或词,然后让模型去预测和还原被遮盖或被替换的部分。NSP则是随机地给定两句话,模型通过训练来判断这两句话是否有上下文关系。在实际训练中,通常会将MLM和NSP相结合,以这种方式训练出的模型能够更加全面地刻画出语言序列中的语义信息。

经由BERT输出的文本嵌入特征能够适用于各种实际的任务,相较于传统的词嵌入技术(如Word2Vec或Glove),BERT充分考虑了句子中每一个字对上下文中其他字的影响以及在不同语境下同一种表达的不同含义。自BERT模型公布以来,就以其卓越的表现深受开发者们的喜爱,作为自然语言处理领域近几年来研究成果的集大成者,BERT也为词嵌入表示的研究提供了很好的思路[16]。

1.2 LDA模型

LDA模型是Blei等[6]于2003年提出的一种主题模型。作为一种无监督的机器学习方法,将给定的文档集传入到模型中,便可得到文档集中每一篇文档主题的概率分布,以该主题的概率分布为依据可以进行文本分类和主题聚类等任务。自提出以来,LDA已经有了诸多的算法改进及变形算法,并且在文本挖掘、信息检索和情感分析等领域得到了广泛应用。LDA是一种描述了文档、主题和词汇之间关系的3层贝叶斯模型,模型结构如图2所示。

图2 LDA模型结构

图2中,每个符号的含义见表1,变量间的箭头表示条件依赖性(Conditional Dependency),方框表示重复抽样,方框右下角的字母指代重复抽样的次数。

表1 LDA符号含义对照表

在LDA模型中,一篇文档的生成步骤如下:

Step1以先验概率P(dm)选定一篇文档dm;

Step2取样生成文档dm的主题分布θm,其中θm服从超参数为α狄利克雷分布,即θm~Dir(α);

Step3从主题分布θm中取样生成文档dm的第n个词的主题zm,n,其中zm,n服从θm的多项式分布,即zm,n~Mult(θm);

Step4取样生成主题zm,n的词语分布φzm,n,其中φzm,n~Dir(β);

Step5从词语分布φzm,n中生成词语wm,n,且wm,n~Mult(φzm,n);

Step6重复Step2-Step5共N次,最终生成一篇总词数为N的文档dm。

2 实验及其结果分析

2.1 BERT模型的预训练

为了验证BERT-LDA方法的有效性,本文进行了大量实验加以验证,本文详细地阐述了实验的步骤和模型相关参数的设置,整个实验过程如图3所示。

图3 BERT-LDA方法流程

BERT预训练模型所用的训练数据是中文维基百科语料。在语料的预处理阶段,利用中文维基百科语料制作了一个字典用来初始化BERT模型的字向量矩阵,除了语料中的中文字以外,字典中还新定义了一些特殊字符以适应BERT模型的训练模式,最终制作出来的字典共计包含了20 193个字。

谷歌官方给出的BERT基准模型总参数量达到了1.1亿个,考虑到训练这个参数规模的模型需要十分充裕的计算资源并且在实际运用中这个参数的性能存在过剩的情况,最终本文预训练的BERT模型参数设置见表2。

表2 BERT模型参数

2.2 情感分类

在完成BERT模型的训练后,在BERT的输出端添加了全连接网络并使用sigmoid函数激活。所使用的训练语料是已经过人工标记处理的酒店评论文本,其中正面评论和负面评论各7 000条,分别标记为1代表情感极性为正和0代表情感极性为负,其中10 000条评论作为训练集,剩余4 000条作为测试集。考虑到在实际生活中,正面评论的数量往往要远高于负面评论的数量,对于这类分布不均衡的样本,使用准确率(Accuracy)作为分类器性能的衡量指标并不合理,故在训练过程中将AUC(Area Under The Curve Of ROC)作为分类器性能的衡量标准。设置初始学习率为1e-6,在每个epoch训练结束后记下当前epoch的AUC,再与上一个epoch的AUC进行比较,如果AUC未获得提升,则降低当前学习率的20%,若连续15个epoch的AUC都没有提升,则提前终止训练。

在相同的酒店评论数据集上将BERT模型和其他两种混合模型的性能优劣做了比较,即分别用不同分类器对测试集进行了情感分类实验,实验结果见表3。对比表中BERT和其他两种常用模型,可以看出BERT在各项模型性能衡量指标中皆有明显优势,这说明BERT模型在该酒店评论数据集上的情感分类效果较好。

表3 实验对比结果

2.3 LDA主题建模

接下来通过Python网络爬虫技术在“携程旅行”平台上获取了561家酒店从2018年7月至2020年6月期间产生的共计16万余条评论文本信息。酒店评论文本存在语言多样化、规范性较差和无意义评论数量较多等缺点,所以对获取到的评论文本进行数据清洗操作就显得尤为重要。首先去掉数据集中所有非评论文本的部分,仅保留评论文本并删除重复评论和少于8个汉字的评论,随后利用Jieba分词工具和哈工大停用词表对文本进行分词处理并去除停用词及特殊符号。得到处理完毕的规范评论文本后,将其传入到情感分类模型中,便得到所有文本情感极性的分类结果。整个特征提取与情感分类过程如图4所示。

图4 特征提取和情感分类

接下来分别对情感分类结果为正和负的评论文本进行LDA文本聚类。文献中对于LDA模型的参数α和β的常用设置为α=50/K,β=0.01,其中K是文本的主题数量,其取值是根据困惑度指标评定法来获得,困惑度计算公式为:

式中:M为文本总数,Nm为第m条文本的词数,P(wn|zk)表示词语wn在主题zk下的概率,P(zk|dm)表示文本dm在主题zk下的概率。随着K的增大,模型的困惑度会逐渐降低。但K过大会导致不同主题间的内容模糊化,因此在实际应用中,一般将困惑度下降速度趋于“平缓点”处的主题数作为参数K的取值。经过多次实验,最终本文的LDA模型中,参数α=10,β=0.01,K=5,迭代次数iter=1 000。

2.4 实验结果分析

依据LDA模型得到的P(topic|doc)分别对正面评论文本和负面评论文本进行聚类,对每个主题提取出概率最高的10个关键词列出其P(word|topic)的概率分布结果见表4和表5。

表4 LDA模型下正面评论的P(word|topic)

表5 LDA模型下负面评论的P(word|topic)

从表4可以看出,用户对一家酒店持肯定态度的原因可以概括为五个方面:

(1) 地理位置:主题中的高频词有“火车站”“地铁”和“市中心”等词汇。说明用户较为关注酒店周边的交通枢纽、商圈等,好的地理位置能给用户带来优质的入住体验。

(2) 性价比:主题高频词有“性价比”,这说明酒店的定价与服务水平相匹配是提高顾客满意度的关键所在。

(3) 餐饮:“早餐”“外卖”等词汇在该主题中频频出现,酒店免费提供早餐和送外卖上门服务可以给舟车劳顿、行程忙碌的用户提供极大的方便。

(4) 服务态度:主题高频词有“前台”“热情”“服务态度”和“行李”等词汇。在用户办理入住、退房等手续时,酒店工作人员的服务态度能给用户留下最为直观的印象并直接影响着用户对酒店的评价。

(5) 硬件设施:主题高频词有“停车场”“游泳池”和“宠物”等。对于一家定位高端,追求高品质服务的酒店,游泳池、健身房和停车场等硬件设施会极大地提升酒店的整体水平,而有这方面需求的用户也必然会选择配备有这些硬件设施的酒店。

反观表5,可将用户对酒店持负面评价的原因归纳为客房质量较差和对酒店工作人员的服务态度不满两个方面,例如空调故障、房间隔音效果差、卫生条件简陋、酒店工作人员的服务水平不够专业、服务态度不够友好等。

对于酒店行业而言,只有不断完善管理制度,提升服务水平,才能发挥自身优势,提升市场竞争力。结合以上主题,本文给出的建议是:绝大多数客户最为关注酒店的地理位置、性价比、餐饮、服务态度和硬件设施这五个方面,在保证一定成本的情况下,要全面提升工作人员的服务水平和服务态度,努力提高房间内部的舒适度,尽可能完善硬件设施并依据房型精确定价,加大卫生保洁工作力度,避免出现客户有需求却得不到回复的情况。高标准做到以上几点就能有效提高用户的满意度进而吸引更多用户前来入住。

3 结 语

本文提出了一种适用于酒店评论的BERT-LDA文本挖掘方法,借助BERT捕捉文本双语义特征的能力,有效地提高了情感分类的准确率,结合LDA主题建模完成了对海量用户评论的主题聚类和文本挖掘工作,为今后的酒店评论文本研究提供了一种新的分析思路。在训练BERT模型时,所使用的训练语料是当前内容覆盖最为全面的中文维基百科语料库,因此本文提出的方法同样适用于其他领域的短文本分类和聚类。但是本研究仍存在不足,如训练情感极性分类器时作为训练集的评论语料还相对较少,评论文本的情感极性还可进一步划分等。在收集数据过程中还发现旅行类型为商务出差的样本数量要远远高于其他旅行类型的样本,但商务出差用户给出的平均评分却是最低的。针对此问题,我们将对商务出差用户的评论文本做更进一步的研究。

猜你喜欢

语料分类文本
分类算一算
在808DA上文本显示的改善
分类讨论求坐标
基于doc2vec和TF-IDF的相似文本识别
数据分析中的分类讨论
教你一招:数的分类
基于语料调查的“连……都(也)……”出现的语义背景分析
文本之中·文本之外·文本之上——童话故事《坐井观天》的教学隐喻
华语电影作为真实语料在翻译教学中的应用
《苗防备览》中的湘西语料