正则表达式在数据处理中的应用

正则表达式是数据科学家工具箱中的基本技能之一,它们在数据预处理、自然语言处理、模式匹配、网络爬虫和数据提取等多种日常任务中都非常有用。本文旨在列出一些可以通过正则表达式自动化的平凡任务。

目录

从文本文档中提取电子邮件

销售和市场团队经常需要从大型文本文档中找到或提取电子邮件和其他联系信息。如果手动进行这项工作,可能会非常繁琐。这正是正则表达式大放异彩的地方。以下是如何编写一个基本的电子邮件提取器的示例代码:

import re with open('text.txt') as f: text = f.read() print(text) print(re.findall(r"[\w.-]+@[\w.-]+", text))

这段代码使用re.findall()函数从文档中提取所有符合以下格式的字符串:任何字符(a-z)、任何数字(0-9)和符号'_',后跟'@'符号,然后可以再次有任何字符、任何数字,特别是点。

正则表达式网络爬虫(数据收集)中的应用

数据收集是数据科学家工作的一个非常常见的部分,鉴于生活在互联网时代,从网上找到数据比以往任何时候都容易。人们可以简单地从维基百科等网站抓取数据。但是,网络爬虫也有自己的问题——下载的数据通常是混乱的,充满了噪音。这正是正则表达式可以有效地使用的地方!

import re re.findall(r">([\w\s()]*?)", html)

一旦使用上述代码,将迅速获得主题列表。同样,可以使用以下正则表达式提取所有这些页面的链接:

import re re.findall(r"\/wiki\/[\w-]*", html)

执行上述代码后,将获得所有这些维基百科页面的链接。如果将上述链接与http://wikipedia.com组合,将能够导航到所有这些维基百科页面。

处理日期时间特征

大多数现实世界的数据都与某种日期或时间列相关联。这些列为模型携带了有用的信息,但由于日期和时间有多种格式,因此处理这些数据变得困难。可以使用正则表达式来处理这些不同的格式吗?让找出答案!

import re re.findall(r"\d{4}", date)

上述代码将直接从日期中给出年份。同样,可以一次性提取月份和日期信息!

在处理文本数据时,尤其是在自然语言处理中,处理的文本来自各种不同的来源。例如,可以有从网络抓取的数据,或者手动收集的数据,或者使用OCR技术从图像中提取的数据等!

import re import nltk # 移除链接 newString = re.sub(r'(https|http)?:\/\/(\w|\.|\/|\?|\=|\&|\%)*\b', '', newString) # 移除数字(电话号码) newString = re.sub("[^a-zA-Z]", " ", newString) # 移除停用词 tokens = [w for w in newString.split() if not w in stop_words] # 移除短词 long_words = [i for i in tokens if len(i) >= 4] return " ".join(long_words).strip()
  • - 这是一个非常有用的网站,可以可视化和理解正则表达式是如何工作的。
  • - 官方文档。
  • - 这是为那些想要快速复习正则表达式操作符的人准备的。
沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:15216758379