推特分类模型正则匹配需求求助:提取指定内容并过滤含数字词汇
推特文本词汇提取正则方案
核心正则表达式
r'(?u)\b(?:@|#)?([^\W\d]{2,})\b'
正则规则拆解
(?u):开启Unicode匹配模式,兼容多语言字母(若仅处理英文也可保留)\b:单词边界,确保匹配完整独立的词汇,避免截取长单词片段(?:@|#)?:可选匹配@或#符号,用非捕获组避免生成多余的分组结果([^\W\d]{2,}):核心捕获组,仅匹配由至少2个字母/下划线组成的内容(自动排除数字及含数字的词汇)\b:结尾的单词边界,确保词汇完整闭合
使用示例(Python)
import re # 测试推特文本 tweet_text = "Hey @john_doe! Did you see #summer_vibes? 2024 is coming, but skip user123 and 456test." # 匹配提取 extracted_terms = re.findall(r'(?u)\b(?:@|#)?([^\W\d]{2,})\b', tweet_text) print(extracted_terms) # 输出: ['Hey', 'john_doe', 'Did', 'you', 'see', 'summer_vibes', 'is', 'coming', 'but', 'skip']
需求匹配验证
- 话题标签处理:
#summer_vibes提取为summer_vibes(自动去掉#) - 提及内容处理:
@john_doe提取为john_doe(自动去掉@) - 数字过滤:
2024、user123、456test因含数字全部被排除 - 普通词汇保留:纯字母/下划线组成的词汇(长度≥2)均被正常提取
内容的提问来源于stack exchange,提问作者user1059114207
相关产品推荐
相关产品推荐

