如何在回归分析中实现 Latent Dirichlet Allocation

How to implement Latent Dirichlet Allocation in regression analysis

我有一个数据集,其中包含酒店评论、评分和其他特征,例如旅行者类型和评论的字数。我想执行主题建模 (LDA) 并使用从评论中派生的主题以及其他功能来识别对评级影响最大的功能(评级作为因变量)。

如果我想使用线性回归来做到这一点,这是否意味着我必须用派生的主题来标记每条评论?有没有办法在 R 中执行此操作,还是我必须手动标记每条评论? (总的来说,我是文本挖掘和数据科学的新手。)

简短的回答:你不必用派生的主题来标记每条评论,因为你会依赖你训练的主题模型来确定评论的主题,然后将其用于构建特征用于您的回归模型。


中使用代码示例(在 R 中)很好地解释了主题建模 www.tidytextmining.com/topicmodeling.html6.2.16.2.2 部分应该可以帮助您快速入门。

牢记以下两个原则

  • 每个文档(酒店评论)都是主题的混合体
  • 每个主题都是单词的混合体

一旦针对评论训练了主题模型,对于每条评论,

  • 文档主题概率可以用作特征
  • 每个主题中的前 N ​​个术语可用于构建文档-术语矩阵(每个评论映射有零个或多个顶级术语),然后可将其用作附加功能

一个简化的例子:评论可能大致属于 4 个主题。

  • 主题 1 可能与位置有关(热门术语:方便位置train_station, walk_distance, 购物, 等)
  • 主题 2 可能是关于酒店员工的(热门术语:接待友好专业, quick, late_checkout 等)
  • 主题 3 可能是关于酒店房间的(热门词条:clean_roomdecortasteful , 等等)
  • 主题 4 可能是关于酒店便利设施(热门术语:泳池wififitness_centre , 等等)

文档-主题概率与每个主题的热门术语相结合可用作类似于以下的特征:

  • topic_1_location_probability
  • topic_2_hotel_staff_probability
  • topic_3_hotel_room_probability
  • topic_4_hotel_amenities_probability is_convenient_location
  • is_train_station_nearby
  • is_walk_distance
  • is_clean
  • is_late_checkout
  • is_fitness_centre
  • 等等

对于较新的评论 :

  • 上面的示例显示了如何创建初始训练数据集 - 基于它来训练模型。
  • 对于较新的评论(即以前未用于训练模型的评论),您不必重复上面的整个练习。相反,经过训练的主题模型可用于识别以前未见过的文档(评论)的主题。 this 问题的答案有示例代码来帮助完成此操作。

希望对您有所帮助。