Я пытаюсь использовать RAKE в udpipe, чтобы сгенерировать список из 25 токенов RAKE на документ в кадре данных и записать эти токены (плюс простой str_count) обратно в кадр данных.Я создал цикл for для обработки, но вместо этого я записываю один и тот же результат в каждую строку, а не в разные результаты для каждой строки.
Установленные и используемые пакеты: udpipe, dplyr, stringi, stringr, data.таблица.
annotation$length <- nchar(annotation$token)
annotation <- annotation %>% filter(length >= 3 )
counter <- textdf$doc_id
for (i in counter) {
subannotation <- annotation %>% filter(doc_id == i)
stats <-
keywords_rake(
x = subannotation,
term = "token", #token or lemma
group = "doc_id",
ngram_max = 3,
n_min = 1,
relevant = subannotation$upos %in% c("NOUN", "VERB", "ADV", "ADJ")
)
stats <- stats %>% top_n(25,rake)
checktopics <- paste(stats$keyword, collapse = " ")
textdf$topics <- checktopics
textdf$score <- str_count(checktopics,"cheese")
}
Предполагаемый результат должен быть примерно таким:
id score topics
1 12 chocolate chocoholics cheese
2 1 plastic waste cheese
3 3 neuroscientists data system
Текущий результат:
id score topics
1 3 neuroscientists data system
2 3 neuroscientists data system
3 3 neuroscientists data system
Что я делаю не так?
Спасибо!