我想在我的推特数据集中识别那些包含 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"
你可以使用 grep
if(length(grep("http://",data))>0){
data[grep("http://",data)]
}
您相对简单的问题,隐藏了一些实际上非常棘手的问题。在您的两个示例中,网址:
http://t.cp/
-bit.ly
链接呢?怎么样https
?构建一组示例推文并确保您的正则表达式有效。
基本上,您需要一个正则表达式。要查看的 Stackoverflow 问题是:
这些问题还包含链接。
您可以使用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 以查看推文是否包含指向外部站点的链接。