首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在使用twitter时排除twitteR句柄

在使用twitter时排除twitteR句柄
EN

Stack Overflow用户
提问于 2016-02-01 11:18:42
回答 1查看 946关注 0票数 0

当使用R中的twitteR包分析#flipkart上的tweet时,大多数tweet都是关于报价的新闻,大约有2-3个句柄。这无助于评估flipkart的整体情绪。我可以在提取tweet的同时排除这些2-3个手柄吗?我需要客户的回应,而不是关于报价的新闻。谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-02 11:03:39

这只是一个提示,不是一个完整的解决方案(我不认为这是可行的)。然而,它太长了,不能发表评论。

看看twitter文档,如何搜索,段落查询运算符。如果将-添加到某个术语中,则将其排除在查询之外。

这可以简单地在搜索查询中转换为twitteR,如下所示:

代码语言:javascript
运行
复制
searchTwitter("#flipkart -pricetrak", n=10)

你可以尝试排除你的一些条款,但这将不是一个容易的任务。

此外,您不应该这样做,例如#flipkart -@flipkart,因为大多数客户的评论似乎都是针对用户@flipkart的,因此您会将它们松开。(搜索查询的术语被解释为tweet的用户或内容。)

最后,您的搜索查询中只有500个字符。

希望它能有所帮助。

更新

根据评论,我建议你可以采取其他一些简单的行动。但恐怕没有“魔法子弹”,你应该利用这些数据,做大量的试验。另外,重要的是要注意,twitteR库虽然非常有用,但在进行更多“高级”操作时使用它要复杂一些(实际上,在我的经验中,每个twitter库都有点类似,有时您最终需要直接访问Twitter;从某种程度上说,它是有意义的,因为库使普通任务变得非常简单,比如获取tweet,但对于其他任务来说并不一定容易)。

  1. 跳过某些用户或验证用户的tweet

这是一个玩具示例,说明如何访问发送tweet的用户:

代码语言:javascript
运行
复制
tweets = searchTwitter("#flipkart -pricetrak", n=10)

for (tweet in tweets) {
  screenName <- as.data.frame(tweet)$screenName
  print(screenName)
  tuser <- getUser(screenName)
  verified <- as.data.frame(tuser)$verified
  print(verified)
}

通过这种方式,您可以过滤来自@flipkart的tweet,或者从您知道的不是客户的用户列表中筛选。此外,您还可以假设客户通常不是经过验证的用户(有关验证帐户的更多详细信息,请参见这里 ),只需过滤来自他们的tweet。

  1. 跳过文本中有链接的tweet

客户在推特中发送链接将是很奇怪的(当然现在是不可能的)。您可以以类似的方式过滤它们:

代码语言:javascript
运行
复制
for (tweet in tweets) {
  text <- as.data.frame(tweet)$text
  print(text)
  print(length(strsplit(text, "https://")[[1]]))
}

(当然,如果strsplit的长度为1,则在tweet文本中没有链接)。

通过这种方式,您将过滤一些来自实际客户的tweets,但我认为这将是过滤大多数包含要约或交易的tweet的简单方法(它们都包含一个链接)。

希望它有用。

更新2

在注释之后,代码的一个改进版本,

代码语言:javascript
运行
复制
data <- NULL
ads <- NULL
for (tweet in tweets) {
  tweet_df <- as.data.frame(tweet)
  screenName <- tweet_df$screenName
  tuser <- getUser(screenName)
  verified <- as.data.frame(tuser)$verified
  print(verified)
  if (verified == TRUE) {
    ads <- rbind(ads, tweet_df)    
  } else {
    data <- rbind(data, tweet_df)    
  }
}
if (! is.null(ads)) {
  write.table(ads, file = "ads.csv", append=TRUE, col.names=FALSE)
}
if (! is.null(data)) {
  write.table(data, file = "data.csv", append=TRUE, col.names=FALSE)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35129208

复制
相关文章

相似问题

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