Я использую Quanteda для создания словарей и поиска терминов.
Вот воспроизводимый пример моих данных:
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"))
Вот как я использую свой словарь после совет, полученный от этого форума:
climate_corpus <- corpus(tweets, text_field = "tweet_message")
climatechange_dict <-
dictionary(list(climate = c("environment*", "climate change")))
groupeddfm <- tokens(climate_corpus) %>%
tokens_lookup(dictionary = climatechange_dict) %>%
dfm(groups = "group")
convert(groupeddfm, to = "data.frame")
Мне нужно создать пустышку в моем исходном наборе данных "твиты", равную 1, когда tokens_lookup идентифицирует слово, включенное в мой словарь, в одном конкретном c наблюдение (твит). Используя мой воспроизводимый пример, я хотел бы создать пустышку, равную 1 для первых трех наблюдений (они включают словарные слова) и равную 0 для четвертого (без словарных слов).
Буду очень признателен за вашу помощь в этом. Большое спасибо!