【自然语言处理 数据清洗】清洗文本中html标签

2024-09-07 06:32

本文主要是介绍【自然语言处理 数据清洗】清洗文本中html标签,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一段本文中既有文字,又有很多html标签,很乱,需要进行清洗,下面是用python 进行过滤辣鸡html的脚本。

# -*- coding:utf-8 -*-import pandas as pd
import reimport jiebadef filter_tags(htmlstr):"""# Python通过正则表达式去除(过滤)HTML标签:param htmlstr::return:"""# 先过滤CDATAre_cdata = re.compile('//<!\CDATA\[[ >]∗ //\CDATA\[[ >]∗ //\\] > ',re.I) #匹配CDATAre_script = re.compile('<\s*script[^>]*>[^<]*<\s*/\s*script\s*>', re.I)# Scriptre_style = re.compile('<\s*style[^>]*>[^<]*<\s*/\s*style\s*>', re.I)# stylere_br = re.compile('<br\s*?/?>')# 处理换行re_h = re.compile('</?\w+[^>]*>')# HTML标签re_comment = re.compile('<!--[^>]*-->')# HTML注释s = re_cdata.sub('', htmlstr)# 去掉CDATAs = re_script.sub('', s)  # 去掉SCRIPTs = re_style.sub('', s)# 去掉styles = re_br.sub('\n', s)# 将br转换为换行s = re_h.sub('', s)  # 去掉HTML 标签s = re_comment.sub('', s)# 去掉HTML注释# 去掉多余的空行blank_line = re.compile('\n+')s = blank_line.sub('\n', s)s = replaceCharEntity(s)  # 替换实体return sdef replaceCharEntity(htmlstr):""":param htmlstr:HTML字符串:function:过滤HTML中的标签"""CHAR_ENTITIES = {'nbsp': ' ', '160': ' ','lt': '<', '60': '<','gt': '>', '62': '>','amp': '&', '38': '&','quot': '"', '34': '"', }re_charEntity = re.compile(r'&#?(?P<name>\w+);')sz = re_charEntity.search(htmlstr)while sz:entity = sz.group()  # entity全称,如>key = sz.group('name')  # 去除&;后entity,如>为gttry:htmlstr = re_charEntity.sub(CHAR_ENTITIES[key], htmlstr, 1)sz = re_charEntity.search(htmlstr)except KeyError:# 以空串代替htmlstr = re_charEntity.sub('', htmlstr, 1)sz = re_charEntity.search(htmlstr)return htmlstrdef repalce(s, re_exp, repl_string):return re_exp.sub(repl_string,s)def Cleaning_data(x):m2=str(x).replace('<p>&nbsp; &nbsp; &nbsp; &nbsp;','').replace('</p><p><br></p>','').replace('<br>','').replace('</p>','').replace('<p>','').replace('       ','').replace('[图片]','').strip()m3=filter_tags(m2)m4=replaceCharEntity(m3)print(m4)if __name__ == '__main__':# 读取数据data = pd.read_csv('C:\\Users\\xiaohu\\Desktop\\香蕉球用户话题\\香蕉球用户话题.csv')# print(data)for each in data.iloc[:,3]:# print(each)Cleaning_data(each)

这篇关于【自然语言处理 数据清洗】清洗文本中html标签的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1144323

相关文章

vite搭建vue3项目的搭建步骤

《vite搭建vue3项目的搭建步骤》本文主要介绍了vite搭建vue3项目的搭建步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录1.确保Nodejs环境2.使用vite-cli工具3.进入项目安装依赖1.确保Nodejs环境

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

前端缓存策略的自解方案全解析

《前端缓存策略的自解方案全解析》缓存从来都是前端的一个痛点,很多前端搞不清楚缓存到底是何物,:本文主要介绍前端缓存的自解方案,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、为什么“清缓存”成了技术圈的梗二、先给缓存“把个脉”:浏览器到底缓存了谁?三、设计思路:把“发版”做成“自愈”四、代码

通过React实现页面的无限滚动效果

《通过React实现页面的无限滚动效果》今天我们来聊聊无限滚动这个现代Web开发中不可或缺的技术,无论你是刷微博、逛知乎还是看脚本,无限滚动都已经渗透到我们日常的浏览体验中,那么,如何优雅地实现它呢?... 目录1. 早期的解决方案2. 交叉观察者:IntersectionObserver2.1 Inter

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

Vue3视频播放组件 vue3-video-play使用方式

《Vue3视频播放组件vue3-video-play使用方式》vue3-video-play是Vue3的视频播放组件,基于原生video标签开发,支持MP4和HLS流,提供全局/局部引入方式,可监听... 目录一、安装二、全局引入三、局部引入四、基本使用五、事件监听六、播放 HLS 流七、更多功能总结在 v

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

JS纯前端实现浏览器语音播报、朗读功能的完整代码

《JS纯前端实现浏览器语音播报、朗读功能的完整代码》在现代互联网的发展中,语音技术正逐渐成为改变用户体验的重要一环,下面:本文主要介绍JS纯前端实现浏览器语音播报、朗读功能的相关资料,文中通过代码... 目录一、朗读单条文本:① 语音自选参数,按钮控制语音:② 效果图:二、朗读多条文本:① 语音有默认值:②

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的