微博评论内容过滤

本文介绍了一种用于微博评论内容过滤的方法,包括去除HTML标记、URL、@提及、特殊字符和表情符号,以及统一文本大小写,确保后期处理的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前段时间在过滤微博评论的时候,整理了一下内容的过滤,主要是以下几个方面:

  • html标记
  • url 标记
  • 去掉@标记与@某人的标记
  • 去掉一些特殊字符
  • 过滤表情(一些表情符号的过滤)
  • 过滤掉\ax0(去掉一些空格标记)
  • 是否转换为小写(为了后期的统一,都转换为小写)
# from HTMLParser import HTMLParser
from html.parser import HTMLParser
import re

def filter_emoji(desstr,restr=''):  
    #过滤表情   
    try:  
        co = re.compile(u'[\U00010000-\U0010ffff]')  
    except re.error:  
        co = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')  
    return co.sub(restr, desstr)  

def data_filter(content, lower=False):
    
    # 1.去掉html标记
    html=content.strip()
    html=html.strip("\n")
    result=[]
    parse=HTMLParser()
    parse.handle_data=result.append
    parse.feed(html)
    parse.close()
    content = "".join(result)
    
    # 2.去掉url标记
    r1 = '''http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+'''
    content = re.sub(r1, '', content)
    
    # 3.去掉@标记与@某人的标记
    r2 = "(@.*?)+ "
    content = re.sub(r2, '', content)
    content = re.sub(r"(回复)?(//)?\s*@\S*?\s*(:| |$)", " ", content)
    
    # 4.去掉一些特殊字符
    r3 = u'[’!"#$%&\'()*+,-./:;<=>?@;;:.|~\≧▽—°❄×☝➡️❤️⭐■⏰🎂🌕👇🤔📷🎤🉑➕🥑👍📒🥚📹🆔🍊☁✨📍💝👗🚄🍀🐾🍓🐋▲🔺🔗❗🦐🐫🧜‍🏃👇➕♥♀☀●巜「」☕/↓→<=>?@⁄•ω★💊🙈☕💰😂·、…★、…【】《》『』()?“”‘’![\\]^_`{|}~]+'
    content = re.sub(r3, '', content)
    
    # 5.过滤表情
    content = filter_emoji(content,restr='')
    content = re.sub(r"\[\S+\]", "", content)      # 去除表情符号
    
    # 6.合并正文中过多的空格
    content = re.sub(r"\s+", " ", content) 
    
    # 7.过滤掉\ax0
    content = content.strip().replace(u'\u3000', u'').replace(u'\xa0', u'')
    
    # 8.是否转换为小写
    if lower:
        content = str(content).lower()
        
    return content.replace(" ", "")

content = "#我的5G 我的荣耀#拿着荣耀V30的@李现ing 和@Johnny黄景瑜 ,帅!欢迎粉丝们拍照打卡,带上#荣耀V30#话题转发分享! "
content = '你好啊hahah@啊哈哈 接下来一年,我希望在<SPAN style="COLOR: red">惠普</SPAN>电脑看到更人性化,各科技化的东西,更能提升视觉享受的东西。 地址:<A title=http://t.cn/8kUAX2z href="http://t.cn/8kUAX2z" target=_blank suda-data="key=tblog_search_v4.1&value=weibo_feed_url" :3651215114310513>http://t.cn/8kUAX2z<SPAN class=feedico_active></SPAN></A>'
content = "致敬音乐本真初心,探索真乐边界态度。在上届咪咕汇盛典中,周杰伦超话、@五月天、@蔡依林、@薛之谦、@蔡徐坤 等重磅咖司曾出席现场,颁发出20项大奖,吸引1.8亿人次在线观看直播。 而今年的神武第十三届#音乐盛典咪咕汇#,将有哪"

content = "#神奇,NEX 3在哪里# 碟中谍?来帮我找找NEX 3 5G在哪儿@李翔要增肥 @NEX智慧旗舰  L程佩文的微博视频 "
# content = "miakong超话ChillinbeforetheMiuMiuShow🐉🌠🍶😉BodygoniateeFourSea丝绸长裤vintage黑色羽毛拖鞋MiuMiu黑色挎包AlexanderWang荧光色袜Nike📷"
# content = "展现新中国成立70年来,中国电影的发展成就和艺术魅力,出席明星范丞丞超话宋祖儿超话赵薇超话黄晓明超话黄景瑜超话郑凯超话林允超话陈赫超话姚晨超话迪玛希超话   等  O风直播的微博直播"

data_filter(content, upper=False)

参考链接

https://blog.youkuaiyun.com/junli_chen/article/details/77685128

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值