【发布时间】:2020-03-12 20:39:22
【问题描述】:
我是使用 R 和 quanteda 的初学者,即使阅读过类似的帖子,我也无法解决以下问题。
我有一个从 Stata 导入的数据集,其中“文本”列包含来自变量“组”标识的不同人群的推文。我想通过以下方式计算我的字典在组级别识别的单词的出现次数:
这是一个可重现的例子:
dput(tweets[1:4, ])
structure(list(tweet_id = c("174457180812_10156824364270813",
"174457180812_10156824136360813", "174457180812_10156823535820813",
"174457180812_10156823868565813"), tweet_message = c("Climate change is a big issue",
"We should care about the environment", "Let's rethink environmental policies",
"#Davos WEF"
), date = c("2019-03-25T23:03:56+0000", "2019-03-25T21:10:36+0000",
"2019-03-25T21:00:03+0000", "2019-03-25T20:00:03+0000"), group = c("1",
"2", "3", "4")), row.names = c(NA, -4L), class = c("tbl_df",
"tbl", "data.frame"))
首先我创建我的字典:
climatechange_dict <- dictionary(list(
climate = c(
"environment*",
"climate change")))
然后我指定语料库
climate_corpus <- corpus(tweets$tweet_message)
我为每个组创建一个 dfm:
group1_dfm <- dfm(corpus_subset(climate_corpus, tweets$group == "1"))
然后我尝试计算每个组的字典中单词的频率:
group1_climate <- dfm_lookup(group1_dfm, dictionary = climatechange_dict)
group1 <- subset(tweets, tweets$group == "1")
group1$climatescore <- as.numeric(group1_climate[,1])
group1$climate <- "normal"
group1$climate[group1$climatescore > 0] <- "climate"
table(group1$climate)
我的问题是这样多词词典条目,如“气候变化”不计算在内。我已经在线阅读我需要将 tokens_lookup() 应用于令牌然后构造 dfm,但在这种情况下我不知道该怎么做。如果您能在这方面帮助我,我将不胜感激。 非常感谢!
【问题讨论】:
-
您能否编辑您的帖子以添加一些示例或模拟语料库文本数据供我们用于解决此问题?这会让别人更容易帮助你。
-
抱歉,我已经编辑了我的帖子。
标签: r dictionary quanteda