我可以将标记化字符串列表合并到R中的数据帧吗?

我可以将标记化字符串列表合并到R中的数据帧吗?,r,list,dataframe,text,R,List,Dataframe,Text,我做了搜索,发现了几个类似的问题,但我仍然没有正确理解 我有一个包含ID、日期和文本列的数据框 df <- data.frame(ID = c('1','2','1'), date = c('11/12', '11/13', '11/14'), text = c('wow amazing', 'test string', 'thank you wow')) df$text <- as.character(df$text)

我做了搜索,发现了几个类似的问题,但我仍然没有正确理解

我有一个包含ID、日期和文本列的数据框

df <- data.frame(ID = c('1','2','1'),
               date = c('11/12', '11/13', '11/14'),
               text = c('wow amazing', 'test string', 'thank you wow'))
df$text <- as.character(df$text)

df这里是一个用于计算令牌出现次数的基本R解决方案

# set ID as names to values in tokenList
r <- unlist(lapply(seq(x<-`names<-`(tokenList,df$ID)),
                   function(k) x[[k]] <- setNames(x[[k]],rep(names(x[k]),length(x[[k]])))))

# form the initial output data frame 
dfout <- data.frame(id = names(r), word = r, cnt = 1)

# sum up occurrence of tokens
dfout <- aggregate(dfout[3], dfout[-3],FUN = sum)

或者您可以通过
dfout更改最后一行。这里有一个用于计算令牌出现次数的基本R解决方案

# set ID as names to values in tokenList
r <- unlist(lapply(seq(x<-`names<-`(tokenList,df$ID)),
                   function(k) x[[k]] <- setNames(x[[k]],rep(names(x[k]),length(x[[k]])))))

# form the initial output data frame 
dfout <- data.frame(id = names(r), word = r, cnt = 1)

# sum up occurrence of tokens
dfout <- aggregate(dfout[3], dfout[-3],FUN = sum)

或者您可以通过
dfout更改最后一行,处理此任务的一种方法是使用tidytext和dplyr包。使用
unnest\u tokens()
拆分单词,然后使用
count()
计算每个ID中每个单词出现的次数

库(dplyr)
图书馆(tidytext)
unnest_标记(df,输入=文本,输出=单词)%>%
计数(ID、word、name=“频率”)
#ID字频率
#          
#1惊人的1
#谢谢
#3 1哇2
#4 1你1
#5 2字符串1
#6.2测试1

处理此任务的一种方法是使用tidytext和dplyr包。使用
unnest\u tokens()
拆分单词,然后使用
count()
计算每个ID中每个单词出现的次数

库(dplyr)
图书馆(tidytext)
unnest_标记(df,输入=文本,输出=单词)%>%
计数(ID、word、name=“频率”)
#ID字频率
#          
#1惊人的1
#谢谢
#3 1哇2
#4 1你1
#5 2字符串1
#6.2测试1

是否只想计算
文本中的字数?你的最终预期结果是什么?@RonakShah我想分析一下哪个ID说得最多的单词,然后最终将它们与某个主题联系起来,比如“游戏”。我的数据集中有130万个句子,因此我倾向于取消对每个单词的测试。你只想计算
文本中的单词数吗?你的最终预期结果是什么?@RonakShah我想分析一下哪个ID说得最多的单词,然后最终将它们与某个主题联系起来,比如“游戏”。我的数据集中有130万个句子,所以我倾向于不去看每个单词
> dfout
  id    word cnt
1  1 amazing   1
2  2  string   1
3  2    test   1
4  1   thank   1
5  1     wow   2
6  1     you   1
> dfout
  id    word cnt
1  1     wow   2
2  1 amazing   1
3  2    test   1
4  2  string   1
5  1   thank   1
6  1     you   1
library(dplyr)
library(tidytext)

unnest_tokens(df, input = text, output = word) %>% 
count(ID, word, name = "frequency")

#  ID    word    frequency
#  <chr> <chr>       <int>
#1 1     amazing         1
#2 1     thank           1
#3 1     wow             2
#4 1     you             1
#5 2     string          1
#6 2     test            1