【问题标题】:Extracting Tweets in R Based on Content (keywords)基于内容(关键字)在 R 中提取推文
【发布时间】:2017-06-30 07:58:34
【问题描述】:

我有一堆推文解析成 CSV 文件(所以我有用户/文本/日期/纬度/经度等字段)

我将这些推文读入 R 中的数据框,并做了一些基本的可视化(如推文频率随时间变化等)。

现在,我想对包含特定关键字的数据框中的推文进行子集化。例如,为了好玩,我希望能够通过提及“希拉里·克林顿”、另一个提及“唐纳德·特朗普”以及另一个提及“德雷克”和“米克·米尔”来获得一个作为子集的数据框。

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

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

特朗普也是如此,如果它包含

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

它可能会抓取最相关的推文(我假设上述过滤条件会提取诸如提及之类的内容 - 例如@HillaryClinton - 和主题标签 - 例如#HillaryClinton)。

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

谁能帮我弄清楚这一点,但如果可能的话,也可以帮助我理解他们是如何制作正则表达式的 :(?我不想每次我需要使用正则表达式时都来这里问...

谢谢!

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

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

但这只会返回“文本”列中匹配的特定单元格。我想要初始 df 中的所有行与“text”中的列匹配。

EDIT2:D'oh,需要使用括号来子集。

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

但是生成的 df 有很多值。

【问题讨论】:

  • 你想要一个用于唐纳德·特朗普和希拉里·克林顿的通用正则表达式吗?还是每个 2 个单独的正则表达式?
  • 我在考虑每个人都分开考虑,因为这样我就可以根据感兴趣的人创建数据框的子集,如果这有意义的话。
  • 正则表达式综合教程:regular-expressions.info/tutorial.html。它包括使用 regular expressions in R 的注意事项。

标签: r regex twitter


【解决方案1】:

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

[hH]illary ?[Cc]linton

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

【讨论】:

  • 我添加了一个解释我尝试的编辑。你能帮我解决我在子集方面遇到的小问题吗?你的正则表达式很有效 - 很酷的工具,顺便说一句,我将来一定会使用它!
猜你喜欢
  • 2013-05-03
  • 2011-02-17
  • 1970-01-01
  • 2020-07-19
  • 2021-03-09
  • 1970-01-01
  • 2021-01-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多