首页 > 解决方案 > 计算给定单词概率、数千个主题和数百万条推文的主题频率

问题描述

我有基本上看起来像这样的推文数据

userID <- c("1","2","2")
text <- c("cat dog", "this is a fish tweet", "this tweet contains a topic")
testDF <- data.frame(userID, text)

我有一个包含 2000 个主题的列表(从http://wwbp.org/data.html获得),每个主题都有单词和相应的条件概率。它看起来像这样,0 和 1 是主题。此外,主题 0 和 1 可以有重叠的词,但可能具有不同的概率。

话题

为简单起见,这是一个示例主题 df

term <- c("dog", "cat", "fish", "food")
topic <- c("pet","pet","pet","pet")
prob <- c(.84, .74, .44, .03)
testDF2 <- data.frame(term, topic, prob)

我需要获取每条推文的主题概率,计算如下所示。在此处输入图像描述

期望的最终结果:一种查看每个用户 ID 谈论最多的主题的方法,但是由于我有 2000 个主题,这是否意味着我必须遍历所有 2000 个主题,从而产生额外的 2000 个列,每个列都有概率?我不确定如何处理这个问题,因为我的数据集有 100 万条推文。

我目前的想法:循环遍历每条推文的每个单词,在主题表中查找,然后进行计算。但是,这将导致 2000 列和可能过多的计算时间。

提前致谢

标签: rtwitterprobabilityldatopic-modeling

解决方案


推荐阅读