A robust approach for aspectbased sentiment analysis using deep learning and domain ontologies

#paper/domainOntology

Proposed framework for aspect-level sentiment analysis of hotel reviews

提出的ABSA方法将酒店评论作为输入。首先对收集到的酒店评论进行预处理,然后利用领域本体对评论进行特征提取;最后,使用不同的深度学习架构进行情感极性计算。图1概括了这些操作。

![[Figure 1. Block diagram of the proposed SA approach.png]]

整体流程

假设有一堆酒店评论,比如“房间宽敞,但服务员态度差”,这个框架要做的是:

  1. 拆解评论,找出评论中提到的具体方面(比如“房间”、“服务员”)。
  2. 分析每个方面的情感(比如“宽敞”是好评,“态度差”是差评)。
  3. 综合结果,生成详细报告:房间(好评)、服务(差评)。

预处理(pre-processing)

把评论中的所有字母变成小写(比如“Great”变成“great”),避免电脑把“Great”和“great”当成两个不同的词,减少混乱。

提取方面术语(Aspect term extraction using domain ontology)

领域本体(Hontology)——一个酒店领域的知识库,里面列好了所有酒店相关的关键词,比如“房间、服务、清洁度”,还包含它们的关联词(比如“脏”关联到“清洁度”)。

具体操作:

  1. 把评论拆成句子,比如“房间很脏,但位置方便”拆成两个句子。
  2. 每个句子中的词和“知识库”里的关键词对比。
  • 直接匹配:比如“房间”直接对应知识库里的“房间”方面。
  • 隐式匹配:比如“脏”虽然不在“清洁度”的关键词列表里,但通过语义分析(比较词语在大量文本中的使用模式),发现它和“清洁度”高度相关,因此归入“清洁度”方面。

结果:给每个句子打标签,标明它提到了哪些方面(比如第一句标“房间”和“清洁度”,第二句标“位置”)。

举个栗子🌰: 句子:“床很硬,但早餐很棒。”

  • “床”直接匹配到“房间”方面。
  • “早餐”匹配到“餐饮”方面。

![[Figure 3. GetAspect Annotations(.) algorithm.png]]

GetAspectAnnotations() 算法

用于执行基于方面的情感分析(Aspect-based Sentiment Analysis,ABSA)。其主要目标是根据给定的评论文本,将每个句子标注上相应的方面标签,进而分析情感。

输入:

  • 评论 R:待分析的评论文本。
  • 方面关键词 \(K_i\):一组与每个方面(如房间、服务、清洁度等)相关的关键词集合,标记为 \(K_{1i}, K_{2i}, ..., K_{Ni}\)

输出:

  • 注释后的句子:将评论 \(R\) 分割成句子,并为每个句子分配相应的方面标签。

算法步骤:

  1. 分割评论为句子:将评论 \(R\) 分割成多个句子 \(S_1, S_2, \dots, S_J\)
  2. 初始化计数器:对于每个句子 \(S_j\),初始化计数器 Count(j, i),表示每个方面 \(i\) 在句子中的匹配次数。
  3. 分割句子为词元:将每个句子 \(S_j\) 分割为词元集合 \(T_j = \{ t_1, t_2, ..., t_z \}\)
  4. 遍历每个词元
    • 对于句子中的每个词元 \(t_z\),检查它是否出现在某个方面关键词集合 \(K_i\) 中:
      • 如果是,增加该方面的计数器 Count(j, i)
      • 如果不是,但词元与方面关键词的语义相似度超过阈值 \(\theta\),则也增加该方面的计数器。
  5. 分配方面标签:如果计数器 Count(j, i) 大于零,则为该句子分配一个方面标签 \(a_i\)。一个句子可以被分配多个方面标签。
  6. 输出结果:输出带有方面标签的注释句子。

核心概念:

  • Count(j, i):记录某个方面在句子中匹配的次数。
  • 语义相似度:通过计算词元和方面关键词之间的语义相似度,发现隐含的、没有明确使用关键词但具有相关性的方面。例如,在句子中提到“房间很脏”,不仅提到了“房间”方面,还隐含了“清洁度”这一方面。
  • 阈值 \(\theta\):控制语义相似度是否足够高,以决定是否将一个词元归类为与某个方面相关。

提取目标观点(分析句子结构)(Target opinion extraction)

从评论中提取与特定方面相关的情感信息。这个步骤的核心任务是识别与每个方面相关的情感表达,并确定这些情感的极性(如正面、负面或中立)。具体来说,目标情感提取需要解决两个问题:

  1. 目标识别:从评论中找出描述特定方面(如“房间”、“服务”)的目标。
  2. 情感极性识别:判断这些目标的情感极性(正面、负面或中立)。

步骤:

  1. 使用依赖树和邻域关系
  • 依赖树(Dependency Tree)是一种句法结构,它展示了句子中各个词之间的依赖关系。在情感分析中,依赖树有助于理解句子中各个词汇如何相互作用,进而更好地识别与目标相关的情感词。

作用:像画句子的“骨架图”,标出词语间的语法关系。

举个栗子🌰: 句子:“服务员态度很差。”

依赖树会标出“服务员”是主语(nsubj),“差”是形容词修饰语(amod),说明“差”是形容“态度”的。

系统就知道“差”是针对“服务员态度”的负面评价

  • 邻域关系(Neighborhood Relation)则指的是句子中相邻的两个词之间的关系。通过这种关系,可以识别出哪些词是与目标直接相关的情感表达。

规则:相邻的非停用词(如“很好”、“糟糕”)可能表达情感。

比如“房间非常干净”中,“非常”和“干净”相邻,强化正面情感。

  1. 依赖树和邻域关系的结合

依赖树能够捕捉到句子中的语法关系,而邻域关系则能够捕捉到词汇在上下文中的位置关系。通过将两者结合,可以更全面地理解评论中目标与情感之间的联系。

  • 操作:把依赖树中的语法关系 + 邻近关系中的邻居关系,合并成一个“超级关系列表”(主关系集 M)。
  • 目的:同时利用句子的“骨架”和“邻居”信息,更准确定位情感词。

举个栗子🌰: 句子:“床很硬,但早餐非常丰盛。”

  • 依赖树分析
    • “床”是主语,“硬”是形容词修饰“床”(amod)。
    • “早餐”是主语,“丰盛”是形容词修饰“早餐”(amod)。
  • 邻近关系分析
    • “非常”和“丰盛”相邻,增强正面情感。
  • 主关系集 M
    • 合并以上两种关系,系统会知道:
      • “硬”对应“床”(依赖树),是负面情感;
      • “非常丰盛”对应“早餐”(依赖树 + 邻近关系),是强烈正面情感。
  1. 学习重要的依赖关系集合(Learning parameters Significant relation set (SRS))

在依赖树中,包含了许多可能的依赖关系(例如,主语-谓语、宾语-动词等),这些关系描述了句子中词与词之间的结构和语法联系。然而,并非所有的依赖关系都对情感分析任务同等重要。因此,显著关系集(SRS) 旨在从这些关系中筛选出对情感分析最有帮助的关系。

  • 例如:假设你要组装一台机器,但零件太多(比如40种螺丝、齿轮、电线),而实际上只有部分零件是关键(比如螺丝和齿轮)。SRS就是筛选出这些“关键零件”——在情感分析中,这些“零件”是句子中最重要的语法关系
  • 作用:让系统只关注那些对判断情感真正有用的语法关系,避免被无关信息干扰。

筛选SRS:

  1. 初步分类
    • 直接保留:明确重要的关系(如“主语、宾语、形容词修饰”)。
    • 直接排除:明显无关的关系(如“缩写、数字修饰”)。
    • 待定:剩下的21种不确定是否重要的关系(比如某些副词或从句关系)。
  2. 实验测试(留一法)
    • 操作:逐一排除“待定”中的某个关系,测试系统准确性变化。
    • 例子
      • 假设排除关系A后,准确率从70%降到60% → 关系A重要,需保留。
      • 排除关系B后,准确率不变 → 关系B不重要,可舍弃。
  3. 最终确定
    • 通过反复实验,筛选出对情感分析影响最大的关系,组成SRS。
    • 论文中发现,排除“Dep”(未知关系)后,准确率显著提升,因此最终SRS不包含“Dep”。

举个栗子🌰:

  • 句子:“虽然房间旧,但服务特别好。”
  • 关键依赖关系
    • 转折关系(conj):捕捉“虽然…但…”的对比,帮助区分“房间旧”(负面)和“服务好”(正面)。
    • 形容词修饰(amod):直接关联“旧→房间”“好→服务”。
  • 无用关系
    • “标点符号关系”:比如逗号连接,不影响情感判断。

通过筛选,SRS只保留“转折关系”和“形容词修饰”等关键关系,系统能更精准地分析情感。

![[Table 1. 2. Ablation test.png]]

Experiments and Results

4.1 数据集使用(Data Set Used)

数据集来源:本实验使用了来自 Tripadvisor 网站的酒店评论数据集。该数据集包含大约 250,000 条酒店评论,评论覆盖了 1,850 家酒店,来自 60多个网站。这些评论包括了与每家酒店相关的文本内容、元数据和评价信息。

数据集特点

  • 每条评论不仅有整体评分(从1星到5星),还有关于酒店 七个方面(如价值、房间、位置、清洁度、入住前台、服务和商务服务)的单独评分。
  • 每个方面的评分范围从 1星5星,这些评分为模型提供了实际的 ground truth(真实标签),用于训练和评估情感分析模型。

4.2 评论级情感分析结果(Review-Level Sentiment Analysis Results) 评论级情感分析:该任务是对整个评论的情感进行分类,通常分为 正面负面中立三类。评论级情感分析的目标是确定整篇评论的情感倾向。

分类方法: 论文采用了多种深度学习模型来进行评论级情感分析,包括:

  1. Vanilla RNN(基本的递归神经网络)
  2. LSTM(长短期记忆网络)
  3. Bi-LSTM(双向长短期记忆网络)
  4. GRU(门控递归单元)
  5. CNN(卷积神经网络)

对每个模型的训练过程进行了 50 轮迭代,并通过实验结果来比较不同模型的性能。

实验结果

  • Vanilla RNN:最终的准确率为 83.32%
  • LSTM:该模型通过50轮训练后,准确率提升至 89.87%,表现较好。
  • Bi-LSTM:Bi-LSTM 的准确率为 91.57%,相较于其他模型,表现最好。
  • GRU:该模型的准确率为 65.57%,较低,说明其相较于 LSTM 和 Bi-LSTM 表现较差。
  • CNN:卷积神经网络在该任务中的准确率为 82.33%,虽然较高,但未达到 Bi-LSTM 的表现。

这些结果表明,Bi-LSTM 是在评论级情感分析任务中表现最好的模型,尤其是在捕捉长距离依赖和上下文信息方面比其他模型更为有效。

4.3 方面级情感分析结果(Aspect-Level Sentiment Analysis Results)

方面级情感分析(ABSA):与评论级情感分析不同,方面级情感分析关注的是评论中提到的各个方面(如房间、服务、清洁度等)的情感分类。每个方面的情感通常是独立的,因此需要对每个方面单独进行情感分析。

实验方法

评估指标

  1. 均方误差(\(\Delta^2_{aspect}\):用于评估预测的方面评分与真实评分之间的差异。

\[ \Delta^2_{aspect} = \frac{\sum_{R=1}^{|D|} \sum_{i=1}^{I} (f_{R_i} - f^*{R_i})^2}{I \cdot |D|} \]

其中,\(f_{R_i}\) 是预测的评分,\(f^*_{R_i}\) 是真实评分。

  1. 方面相关性(\(\beta_{aspect}\):用于评估预测的方面评分是否保持了与真实评分之间的相对顺序。

\[ \beta_{aspect} = \frac{\sum_{R=1}^{|D|} \beta_{f_R, f^*_R}}{|D|} \]

其中,\(\beta_{f_R, f^*_R}\) 是评分向量 \(f_R\)\(f^*_R\) 的 Pearson 相关系数,衡量的是预测与实际评分之间的线性关系。

  1. Pearson 相关系数公式:用于评估 真实评分预测评分 之间的关联度,范围从 -1 到 +1。表示预测模型在方面级情感分析中的表现。

\[ r_{xy} = \frac{n \sum x_i y_i - \sum x_i \sum y_i}{\sqrt{n \sum x_i^2 - (\sum x_i)^2} \cdot \sqrt{n \sum y_i^2 - (\sum y_i)^2}} \]

其中,\(x_i\)\(y_i\) 分别代表真实评分和预测评分的样本点,\(n\) 是样本的数量,\(r_{xy}\) 是两个变量之间的相关系数,衡量它们之间的线性关系。

实验结果

  • 使用 Bi-LSTM 模型进行方面级情感分析,得到了以下结果:
  • \(\Delta^2_{aspect}\)0.384,这表示预测评分与实际评分之间的误差较小。
  • \(\beta_{aspect}\)0.712,表示预测的评分在排序上与实际评分的相关性较高,能够较好地保持各方面评分的顺序。

这些结果表明,Bi-LSTM 模型在方面级情感分析任务中,特别是在捕捉不同方面的情感倾向方面,表现出色。通过这种方式,能够精确地提取出关于酒店各个方面的情感信息,并为每个方面分配相应的情感评分。

4.4 对比与分析(Discussion and Comparison)

通过对比 Bi-LSTM 与其他模型(如 SVM、CNN 等),在评论级情感分析和方面级情感分析中,Bi-LSTM 的表现显著优于其他模型,尤其是在情感分析的准确性和对不同方面评分的预测能力方面。

作者还指出,Hontology(酒店行业的领域本体)在改进方面识别和情感分类方面的作用是非常关键的,它帮助识别了评论中的显性和隐性方面,进一步提高了情感分析的效果。

总结:

实验与结果部分通过详细的实验设计和数据分析,验证了作者提出的基于领域本体和深度学习的情感分析框架的有效性。通过与其他模型的对比,证明了 Bi-LSTM 在情感分析任务中的优势,尤其在评论级情感分析和方面级情感分析方面的出色表现。

Conclusion

  1. 基于深度学习和领域本体的情感分析框架

本研究提出了一种新的基于 深度学习领域本体基于方面的情感分析(ABSA) 框架。该框架结合了 Bi-LSTM(双向长短期记忆网络)模型和 Hontology(酒店行业的领域本体),以提高情感分析的精度。

通过引入领域本体,框架能够更好地识别评论中的显性隐性方面,并对其进行情感分类。特别是,领域本体帮助提取了评论中没有明确提到但实际存在的方面(例如“房间很脏”间接涉及到“清洁度”这一隐性方面)。

  1. Bi-LSTM模型的优越性

通过在 评论级情感分析(RSA)和 方面级情感分析(ABSA)中应用 Bi-LSTM,本研究证明了该模型在捕捉长距离依赖和上下文信息方面的优势。与其他模型(如 SVMCNN)相比,Bi-LSTM 在准确性和情感分析性能上表现更好,尤其是在方面级情感分析中表现突出。

方面级情感分析 中,Bi-LSTM 模型实现了 \(\Delta^2_{aspect}\)0.384\(\beta_{aspect}\)0.712,这表明模型能够较好地预测不同方面的情感评分,并保持评分的顺序关系。

  1. 领域本体的作用

Hontology 本体在框架中的作用至关重要,它不仅帮助更准确地识别评论中的各个方面,还能识别出隐性情感,例如当评论中没有显式提及某些方面时,依然能通过本体识别出这些情感信息,从而提升情感分析的细粒度和准确性。

领域本体的使用对于提高情感分析的鲁棒性和多领域适用性也具有重要意义。通过领域本体提供的结构化知识,可以针对特定行业(如酒店业)进行定制化的情感分析。

  1. 实验验证

本研究通过在 酒店评论数据集 上进行实验,验证了提出方法的有效性。实验结果表明,使用 Bi-LSTM 模型结合领域本体的情感分析框架相比于传统方法(如基于词典的情感分析方法或其他深度学习模型),取得了显著的性能提升。