根据内容(关键字)提取R中的推文

时间:2017-02-12 07:45:30

标签: r regex twitter grep

我有一堆推文被解析为CSV文件(因此我有用户/文本/日期/纬度/经度等字段)。

我将这些推文读入R中的数据框并进行了一些基本的可视化(如推特频率随着时间推移等等,以获得乐趣。

现在,我想在包含特定关键字的数据框中对推文进行子集化。例如,为了好玩,我希望能够通过提及与#34; Hillary Clinton"和另一个唐纳德特朗普"还有另一个用于" Drake"和" Meek Mill"。

例如,对于希拉里/特朗普,我希望包含以下短语的推文是相关的:

"Hillary Clinton", "HillaryClinton", "hillary clinton", "hillaryclinton"

同样对于特朗普来说,如果它包含

"Donald Trump", "DonaldTrump", "donald trump", "donaldtrump"

它可能会抓取最相关的推文(我假设上面的过滤条件会引起像提及的那样 - 例如@HillaryClinton - 和hashtags - 例如#HillaryClinton)。

因此,我需要使用不同的关键字集来对数据框进行子集化以提取相关的推文。我的猜测可能是使用grep,但我不知道如何找出每个用例中的正则表达式。

任何人都可以帮我解决这个问题,但也可以帮助我理解他们如何制作正则表达式:(我不想来这里每次我都需要使用正则表达式...

谢谢!

编辑:按照第一篇文章中的示例,我尝试了:

hillary_df <- subset(tweets_df, grep("[hH]illary ?[Cc]linton", tweets_df$text, value=FALSE))

但这只会返回列中的特定单元格&#34; text&#34;那场比赛。我希望初始df中的所有行都包含&#34; text&#34;中的列。匹配。

EDIT2:D&#39;哦,需要使用括号来进行子集化。

hillary_df <- tweet_df[grep("[hH]illary ?[Cc]linton", tweets_df$text, value=FALSE), ]

但是得到的df有很多值。

1 个答案:

答案 0 :(得分:1)

你可以在类似的路线上构建:

[hH]illary ?[Cc]linton

演示:https://regex101.com/r/tEcDNY/2