R - 将每篇文章的 udpipe RAKE 关键字解析回数据框
R - Parsing keywords from udpipe RAKE per article back to dataframe
我正在尝试使用 udpipe 的 RAKE 为数据帧中的每个文档生成 25 个 RAKE 令牌的列表,并将这些令牌(加上一个简单的 str_count)写回数据帧。我构造了一个 for 循环来处理,但我在每一行都写了相同的结果,而不是每一行都写了不同的结果。
安装和使用的包是udpipe、dplyr、stringi、stringr、data.table。
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
我做错了什么?
谢谢!
适当的解决方法是将指针添加到循环中的行。德普
textdf$topics[i] <- checktopics
textdf$score[i] <- str_count(checktopics,"cheese")
我正在尝试使用 udpipe 的 RAKE 为数据帧中的每个文档生成 25 个 RAKE 令牌的列表,并将这些令牌(加上一个简单的 str_count)写回数据帧。我构造了一个 for 循环来处理,但我在每一行都写了相同的结果,而不是每一行都写了不同的结果。
安装和使用的包是udpipe、dplyr、stringi、stringr、data.table。
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
我做错了什么?
谢谢!
适当的解决方法是将指针添加到循环中的行。德普
textdf$topics[i] <- checktopics
textdf$score[i] <- str_count(checktopics,"cheese")