1

我想在我的推特数据集中识别那些包含 URL 的推文。例如,使用“http://”的符号。

如何在R中进行?例如推文文本是

  "@RainxDog @twitpic Please HELP #OccupyWallStreet and RT this video: http://t.co/vjwNR7TC"

  "@degamuna Please HELP #OccupyWallStreet and RT this video: http://t.co/vjwNR7TC"
4

3 回答 3

3

你可以使用 grep

if(length(grep("http://",data))>0){
 data[grep("http://",data)]
}
于 2012-07-11T15:06:54.970 回答
2

您相对简单的问题,隐藏了一些实际上非常棘手的问题。在您的两个示例中,网址:

  1. 形式如下:http://t.cp/-bit.ly链接呢?怎么样https
  2. 网址出现在推文的末尾。推文中间或开头的网址怎么样?

构建一组示例推文并确保您的正则表达式有效。

基本上,您需要一个正则表达式。要查看的 Stackoverflow 问题是:

  1. 如何使用 JavaScript RegEx 从推文中提取 URL?
  2. 使用 Python 从字符串中提取 URL 的最简洁方法是什么?

这些问题还包含链接。

于 2012-07-11T15:39:56.307 回答
0

您可以使用Twitter Entity获取推文的所有 URL 。进行 REST 调用时,请确保包括

&include_entities=true

这将为您提供 JSON 或 XML 中称为实体的部分。将有一个名为 urls 的子节点。

这是将返回的示例。

"text": "Twitter for Mac is now easier and faster, and you can open multiple windows at once http://t.co/0JG5Mcq",

    "entities": {

      "media": [

      ],

      "urls": [

        {

          "url": "http://t.co/0JG5Mcq",

          "display_url": "blog.twitter.com/2011/05/twitte…",

          "expanded_url": "http://blog.twitter.com/2011/05/twitter-for-mac-update.html",

          "indices": [

            84,

            103

          ]

        }

      ],

      "user_mentions": [

      ],

      "hashtags": [

      ]

    }

因此,查找实体 -> urls 以查看推文是否包含指向外部站点的链接。

于 2012-07-11T16:46:02.693 回答