首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R-将每篇文章中的关键字从udpipe RAKE解析回dataframe

R-将每篇文章中的关键字从udpipe RAKE解析回dataframe
EN

Stack Overflow用户
提问于 2019-02-10 09:00:47
回答 1查看 293关注 0票数 0

我正在尝试使用udpipe的RAKE在数据帧中为每个文档生成一个包含25个RAKE标记的列表,并将这些标记(加上一个简单的str_count)写回数据帧。我构造了一个for循环来处理,但是我将相同的结果写入每一行,而不是将不同的结果写入每一行。

安装和使用的包有udpipe、dplyr、stringi、stringr、data.table。

代码语言:javascript
运行
复制
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")

}

预期的结果应该是这样的:

代码语言:javascript
运行
复制
id score topics
1  12    chocolate chocoholics cheese
2  1     plastic waste cheese
3  3     neuroscientists data system

目前的结果是:

代码语言:javascript
运行
复制
id score topics
1  3     neuroscientists data system
2  3     neuroscientists data system
3  3     neuroscientists data system

我做错了什么?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-10 20:44:59

适当的修复方法是将指针添加到循环中的行。德尔普。

代码语言:javascript
运行
复制
textdf$topics[i] <- checktopics
textdf$score[i] <- str_count(checktopics,"cheese")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54612390

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档