我试图找出如何根据文档中包含的术语来识别文档(在本例中是tweet)。
假设我有这个数据框架(df),它由Twitter用户的屏幕名称列表和他们的一个tweet组成。
> df
ScreenName tweet
[1,] "Guy A" "one random tweet"
[2,] "Guy B" "another random tweet"
[3,] "Guy C" "a third random piece of text"在这个数据框架内,我希望得到包含特定术语-say“tweet”的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,包括提到术语的tweet和t.o -其他tweet
t.tw <- tw[t.n,]
t.o <- tw[!1:nrow(tw) %in% t.n, ]谢谢你的帮助。
如果上面这段可怕的代码冒犯了任何有成就的R用户,那么请道歉。
发布于 2014-06-10 20:34:05
为此,我将继续使用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 tweethttps://stackoverflow.com/questions/24117368
复制相似问题