我试图弄清楚如何根据可能包含的术语来识别文档(在这种情况下为推文)。
假设我有这个数据框(df),它由Twitter用户的屏幕名称列表和他们的一条推文组成。
> df
ScreenName tweet
[1,] "Guy A" "one random tweet"
[2,] "Guy B" "another random tweet"
[3,] "Guy C" "a third random piece of text"
好吧,在这个数据帧中,我想获取包含某个术语的推文(例如“ tweet”),然后将其提取到新的数据帧(df2)中,如下所示:
> df2
ScreenName tweet
[1,] "Guy A" "one random tweet"
[2,] "Guy B" "another random tweet"
我认为必须有一种使用tm或qdap软件包进行此操作的方法。但是找不到任何东西,因此最终陷入了混乱。
清理完主体后,我将其转换为termDocumentMatrix
tdm <- TermDocumentMatrix(corpus, control=list(minWordLength=1))
然后,我确定感兴趣的术语在术语文档矩阵的哪一行中
t <- as.vector(tdm[term,])
子集-如果已多次提及该术语
t.df <- as.data.frame(t)
t.sub <- subset(t.df, t >= 1)
获取文件编号(行号)
t.n <- as.numeric(rownames(t.sub))
创建新的数据框,其中t.tw-仅包括提及条款的推文和-其他推文
t.tw <- tw[t.n,]
t.o <- tw[!1:nrow(tw) %in% t.n, ]
谢谢你的帮助。
如果上述可怕的代码冒犯了任何熟练的R用户,则表示歉意。
为此,我会停留在基础上,并在下面的行中使用该grep
函数(如果您已经有了data.frame
):
df[grep("tweet", df$tweet), ]
这是您的数据的全部:
df <- read.table(text='ScreenName tweet
"Guy A" "one random tweet"
"Guy B" "another random tweet"
"Guy C" "a third random piece of text"', header=TRUE)
df[grep("tweet", df$tweet), ]
## ScreenName tweet
## 1 Guy A one random tweet
## 2 Guy B another random tweet
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句