首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R/qdap-基于术语的Get文档

R/qdap-基于术语的Get文档
EN

Stack Overflow用户
提问于 2014-06-09 09:31:30
回答 1查看 215关注 0票数 0

我试图找出如何根据文档中包含的术语来识别文档(在本例中是tweet)。

假设我有这个数据框架(df),它由Twitter用户的屏幕名称列表和他们的一个tweet组成。

代码语言:javascript
复制
> 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)中,如下所示:

代码语言:javascript
复制
> df2
     ScreenName tweet                 
[1,] "Guy A"    "one random tweet"    
[2,] "Guy B"    "another random tweet"

我想一定有办法使用tm或qdap包。但什么也找不到,结果却是一团糟;

清理完语料库后,我转换为termDocumentMatrix

代码语言:javascript
复制
tdm <- TermDocumentMatrix(corpus, control=list(minWordLength=1))

然后,我确定在术语文档矩阵的哪一行中,我感兴趣的术语是

代码语言:javascript
复制
t <- as.vector(tdm[term,])

子集-如果已不止一次提到术语

代码语言:javascript
复制
t.df <- as.data.frame(t)
t.sub <- subset(t.df, t >= 1)

获取文档编号(行号)

代码语言:javascript
复制
t.n <- as.numeric(rownames(t.sub))

创建新的数据框架,其中仅使用t.tw,包括提到术语的tweet和t.o -其他tweet

代码语言:javascript
复制
t.tw <- tw[t.n,]
t.o <- tw[!1:nrow(tw) %in% t.n, ]

谢谢你的帮助。

如果上面这段可怕的代码冒犯了任何有成就的R用户,那么请道歉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-10 20:34:05

为此,我将继续使用grep函数(如果您已经有了data.frame),并使用以下行:

代码语言:javascript
复制
df[grep("tweet", df$tweet), ]

以下是与您的数据完整的内容:

代码语言:javascript
复制
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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24117368

复制
相关文章

相似问题

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