首页 > 解决方案 > 使用正则表达式从推文中提取主题标签的更快方法

问题描述

我有一个 pandas 数据框,其中包含 100 万条推文的详细信息,包括推文本身和各种其他属性。我正在尝试从推文中提取主题标签列表。重要的是该列表仍与每条推文相关联,而不是所有推文中的主题标签列表。

我拥有的推文数量意味着运行需要数小时/数天。有没有像我已经尝试过的那样在我的熊猫数据框上使用 iterrows 的替代方法?

def extracthash(x):
    for index, row in tweets_scored.iterrows():
    tweets_scored.loc[:,"Hashtags"]= tweets_scored.text.str.find(r'#.*?(?=\s|$)')
    return tweets_scored

tweets_scored.apply(extracthash, axis=1)

这就是我的目标,如果我在我的数据框中只取少数行的子集,代码确实有效。

text                                    hashtag list

I like #cheese and #flour        [#cheese, #flour] 

He eats #bread                            [#bread]

真诚感谢任何帮助!谢谢

标签: pythonregexpandastwitter

解决方案


我正在使用这个小循环来处理类似的情况(推文上的 NLP)来提取标签和推文的 at 引用。它快速而简单:

import re
tHash = []
tAt = []
for item in tweets:
    if re.search('^@.*', item):
       tAt.append(item)

    if re.search('^#.*', item):
       tHash.append(item)

推荐阅读