繁体   English   中英

Python Regex表达式,用于从文本中提取主题标签

[英]Python Regex expression for extracting hashtags from text

我正在处理我在选举中挖掘的一些推文,我需要一种从推文中提取标签的方法,同时考虑标点符号,非Unicode字符等,同时仍将标签保留在输出列表中。

例如,一条推文中的原始文本看起来像:

我和她在一起! #NeverTrump #DumpTrump#imwithher🇺🇸@布鲁克林威廉斯堡

当在python中变成字符串(甚至放在该站点的代码块中)时,末尾的特殊字符也会更改,从而产生以下结果:

"I'm with HER! #NeverTrump #DumpTrump #imwithherdY\xd8\xa7dY\xd8, @ Williamsburg, Brooklyn"

现在我想将字符串解析为如下所示的列表:

['#NeverTrump','#DumpTrump', '#imwithher']

我目前正在使用此表达式,其中str是以上字符串:

tokenizedTweet = re.findall(r'(?i)\#\w+', str, flags=re.UNICODE)

但是,我将其作为输出:

['#NeverTrump', '#DumpTrump', '#imwithherdY\xd8']

我如何在正则表达式中考虑“ dY \\ xd8”以排除它? 我也欢迎其他不涉及正则表达式的解决方案。

是的,关于不涉及正则表达式的解决方案。 ;)

# -*- coding: utf-8 -*-
import string 
tweets = []

a = "I'm with HER! #NeverTrump #DumpTrump #imwithher🇺🇸 @ Williamsburg, Brooklyn"

# filter for printable characters then
a = ''.join(filter(lambda x: x in string.printable, a))

print a

for tweet in a.split(' '):
    if tweet.startswith('#'):
        tweets.append(tweet.strip(','))

print tweets

和tada:['#NeverTrump','#DumpTrump','#imwithher']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM