Python文本信息解析:从基础到高级实战‘[pp]]‘[

553e0334629e0ab8239c442f02b27d9c.jpeg

更多Python学习内容:ipengtao.com

大家好,我是彭涛,今天为大家分享 Python文本信息解析:从基础到高级实战,全文3600字,阅读大约10分钟。

文本处理是Python编程中一项不可或缺的技能,覆盖了广泛的应用领域,从字符串操作到正则表达式、自然语言处理和数据格式解析。在这篇文章中,将深入研究如何在Python中解析文本信息,提供详实的示例代码和实战指南,让大家更加全面地掌握文本处理的技术和应用。

基础字符串操作

从基础的字符串操作开始。通过示例代码展示了如何分割字符串、查找子串以及替换文本,这些是处理文本的常见操作。

text = "Python is a powerful programming language."

# 分割字符串
words = text.split()
print("Words:", words)

# 查找子串
substring = "powerful"
if substring in text:
    print(f"'{substring}' found in the text.")

# 替换文本
new_text = text.replace("Python", "Ruby")
print("Updated Text:", new_text)

正则表达式应用

正则表达式是处理文本的强大工具,通过示例展示了如何使用正则表达式匹配社会安全号(SSN)。

import re

pattern = r'\b\d{3}-\d{2}-\d{4}\b'  # 匹配社会安全号
text = "John's SSN is 123-45-6789."

match = re.search(pattern, text)
if match:
    ssn = match.group()
    print("SSN found:", ssn)

使用NLTK进行自然语言处理

自然语言处理(NLP)在文本处理中占据重要地位。通过NLTK库展示了如何分词并去除停用词。

from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords

nltk.download('punkt')
nltk.download('stopwords')

text = "Natural Language Processing is fascinating!"

# 分词
tokens = word_tokenize(text)
print("Tokens:", tokens)

# 去除停用词
filtered_tokens = [word for word in tokens if word.lower() not in stopwords.words('english')]
print("Filtered Tokens:", filtered_tokens)

解析JSON数据

JSON是一种常见的数据格式,展示如何解析JSON数据并访问其中的字段。

import json

json_data = '{"name": "John", "age": 30, "city": "New York"}'

# 解析JSON
parsed_data = json.loads(json_data)
print("Parsed Data:", parsed_data)

# 访问JSON字段
print("Name:", parsed_data['name'])

处理CSV文件

CSV文件是一种常见的数据存储格式。演示如何解析CSV文件并访问其中的数据。

import csv

csv_data = """Name, Age, City
John, 25, London
Alice, 30, Paris
Bob, 22, New York
"""

# 解析CSV
csv_reader = csv.DictReader(csv_data.splitlines())
for row in csv_reader:
    print("Name:", row['Name'], "Age:", row[' Age'], "City:", row[' City'])

使用Beautiful Soup解析HTML

Beautiful Soup是一个强大的HTML解析库,展示如何使用它解析HTML并提取文本内容。

from bs4 import BeautifulSoup

html_data = "<html><body><p>Hello, <b>world!</b></p></body></html>"

# 解析HTML
soup = BeautifulSoup(html_data, 'html.parser')
text_content = soup.get_text()
print("Text Content:", text_content)

利用正则表达式提取信息

再次展示正则表达式的应用,使用正则表达式提取文本中的邮箱地址。

import re

text = "Contact us at support@example.com or sales@example.com"

# 提取邮箱地址
email_pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
emails = re.findall(email_pattern, text)
print("Emails:", emails)

处理日期时间信息

演示如何解析日期字符串并将其转换为日期对象。

from datetime import datetime

date_string = "2023-01-15"

# 解析日期字符串
parsed_date = datetime.strptime(date_string, "%Y-%m-%d")
print("Parsed Date:", parsed_date)

文本信息分析与情感分析

文本信息分析涉及到对文本内容的深入理解和处理。

下面是一个简单的情感分析示例,使用TextBlob库。

from textblob import TextBlob

text = "Python is such a powerful language with a beautiful syntax."

# 创建TextBlob对象
blob = TextBlob(text)

# 分析情感
sentiment_score = blob.sentiment.polarity
if sentiment_score > 0:
    print("Positive sentiment!")
elif sentiment_score < 0:
    print("Negative sentiment!")
else:
    print("Neutral sentiment.")

中文文本处理

针对中文文本处理,可以使用jieba库进行分词和关键词提取。

import jieba
from jieba.analyse import extract_tags

chinese_text = "自然语言处理在中文信息处理中具有重要作用。"

# 中文分词
seg_list = jieba.cut(chinese_text)
print("Chinese Segmentation:", "/".join(seg_list))

# 提取关键词
keywords = extract_tags(chinese_text)
print("Chinese Keywords:", keywords)

处理大型文本文件

对于大型文本文件,逐行读取是一个高效的方式。

以下是一个处理大型文本文件的示例:

file_path = "large_text_file.txt"

# 逐行读取大型文本文件
with open(file_path, 'r') as file:
    for line in file:
        # 处理每行文本
        processed_line = line.strip()
        print(processed_line)

使用Spacy进行高级自然语言处理

Spacy是一个强大的自然语言处理库,支持词性标注、命名实体识别等任务。

import spacy

nlp = spacy.load("en_core_web_sm")
text = "Spacy is an advanced NLP library."

# 使用Spacy进行词性标注
doc = nlp(text)
for token in doc:
    print(f"Token: {token.text}, POS: {token.pos_}")

总结

在本文中,深入研究了Python中解析文本信息的多个方面,从基础的字符串操作、正则表达式应用到高级的自然语言处理和大型文本文件处理。通过详实的示例代码,大家可以全面了解如何处理不同类型的文本数据,并运用强大的Python库和工具进行文本信息分析。

从处理英文文本的基础出发,介绍了字符串操作、正则表达式的妙用,以及自然语言处理库NLTK的应用。接着,展示了如何解析JSON数据、处理CSV文件,利用Beautiful Soup解析HTML,甚至深入到了情感分析和中文文本处理领域。对于大型文本文件,提供了逐行处理的高效方式,同时演示了Spacy库在高级自然语言处理中的应用。

这篇文章不仅提供了全面的文本处理技术,还为大家展示了如何根据任务需求选择合适的工具。从简单的字符串处理到复杂的自然语言处理,Python为文本数据的解析提供了强大的生态系统。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

更多Python学习内容:ipengtao.com

干货笔记整理

  100个爬虫常见问题.pdf ,太全了!

Python 自动化运维 100个常见问题.pdf

Python Web 开发常见的100个问题.pdf

124个Python案例,完整源代码!

PYTHON 3.10中文版官方文档

耗时三个月整理的《Python之路2.0.pdf》开放下载

最经典的编程教材《Think Python》开源中文版.PDF下载

b071710147180b43c898d1f3235b7222.png

点击“阅读原文”,获取更多学习内容

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/245796.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

什么是POM设计模式?

为什么要用POM设计模式 前期&#xff0c;我们学会了使用PythonSelenium编写Web UI自动化测试线性脚本 线性脚本&#xff08;以快递100网站登录举栗&#xff09;&#xff1a; import timefrom selenium import webdriver from selenium.webdriver.common.by import Bydriver …

【普中】基于51单片机简易计算器数码管显示设计( proteus仿真+程序+实物演示+讲解视频)

【普中开发板】基于51单片机简易计算器数码管显示设计( proteus仿真程序实物演示讲解视频&#xff09; Proteus 仿真&#xff1a;Proteus 8.16(有低版本) 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;P04 1. 主要功能&#xff1a…

详解RTC:以华人文化打造链上生态

文化是人类在发展的历史长河中淘洗出来的智慧结晶&#xff0c;随着人类社会的进步和变迁&#xff0c;经历了从口口相传到互联网等不同历史时代的传承和创新。在数字技术飞速发展的当今&#xff0c;区块链技术为文化的创新与传承提供了全新的空间和方式&#xff0c;使其得以在新…

UDP特性之组播(多播)

UDP特性之组播 1. 组播的特点2. 设置主播属性2.1 发送端2.2 接收端 3. 组播通信流程3.1 发送端3.2 接收端 4. 通信代码 原文链接 在公司测试广播和多播有一点问题。。。 1. 组播的特点 组播也可以称之为多播这也是UDP的特性之一。组播是主机间一对多的通讯模式&#xff0c;是…

Java使用Microsoft Entra微软 SSO 认证接入

1. Microsoft Entra Microsoft Entra ID 是基于云的标识和访问管理服务&#xff0c;可帮助员工访问外部资源。 示例资源包括 Microsoft 365、Azure 门户以及成千上万的其他 SaaS 应用程序。 Microsoft Entra ID 还可帮助他们访问你的企业 Intranet 上的应用等内部资源&#x…

Xcode编写基于C++的动态连接库(dylib)且用node-ffi-napi测试

创建一个dylib工程示例 在 Xcode 中创建一个动态链接库&#xff08;.dylib 文件&#xff09;的步骤如下&#xff1a; 打开 Xcode&#xff1a; 打开 Xcode 应用程序。 创建新的工程&#xff1a; 选择 "Create a new Xcode project"&#xff0c;或者使用菜单 File &g…

DHTMLX Suite v8.3发布!深化JavaScript UI小部件库使用体验

DHTMLX UI 组件库允许您更快地构建跨平台、跨浏览器 Web 和移动应用程序。它包括一组丰富的即用式 HTML5 组件&#xff0c;这些组件可以轻松组合到单个应用程序界面中。 DHTMLX Suite v8.3已于近日正式发布啦&#xff01;这个更新附带了一组新特性和改进&#xff0c;旨在促进您…

数据结构与算法之美学习笔记:35 | Trie树:如何实现搜索引擎的搜索关键词提示功能?

目录 前言什么是“Trie 树”&#xff1f;如何实现一棵 Trie 树&#xff1f;Trie 树真的很耗内存吗&#xff1f;Trie 树与散列表、红黑树的比较解答开篇内容小结 前言 本节课程思维导图&#xff1a; 搜索引擎的搜索关键词提示功能&#xff0c;我想你应该不陌生吧&#xff1f;为…

微信小程序---自定义组件

目录 1.局部引用组件 2.全局引用组件 3.组件和页面的区别 4.自定义组件样式 5.properties属性 6.data和properties的区别 7.数据监听器 8.纯数据字段 9.自定义组件-组件的生命周期 lifetimes节点 10.组件所在的页面的生命周期 pageLifetimes节点 11.插槽 &#x…

bugkuctf web随记wp

常规思路&#xff1a; 1&#xff0c;源码2&#xff0c;抓包3&#xff0c;御剑dirsearch扫后台检查是否有git文件未删除4&#xff0c;参数 本地管理员&#xff1a;1&#xff0c;cu看源码&#xff0c;sci看源码有一串东西2&#xff0c;base64解码后是test123猜测是密码3&#x…

实战——Mac M2 安装mat工具

线上环境出现内存飙升的情况&#xff0c;需要工具定位问题发生点就需要用到mat工具了&#xff0c;之前都是在intel芯片环境上安装的&#xff0c;现在换了m2芯片&#xff0c;导致出现了问题&#xff0c;经过一系列调研都解决了&#xff0c;特此记录下&#xff0c;以备后查 开发…

架构设计系列之常见架构(一)

本部分对常见架构进行简单的说明。 一、三层架构之经典 MVC 经典的 MVC 架构&#xff08;Model-View-Controller&#xff09;架构是软件系统架构设计中的经典&#xff0c;它将应用程序分为三个主要部分&#xff1a; 模型&#xff08;Model&#xff09;视图&#xff08;View&…

微信小程序 全局共享数据 mobx

前言 全局数据共享&#xff08;又叫做&#xff1a;状态管理&#xff09;是为了解决组件之间数据共享的问题。开发中常用的全局数据共享方案有&#xff1a;Vuex、Redux、MobX 等。 一. 安装 npm install --save mobx-miniprogram4.13.2 mobx-miniprogram-bindings2.1.5 安装完…

单机环境下一人一单

优惠券秒杀 添加优惠卷 店铺发布优惠券又分为平价券和特价券, 平价券可以任意购买而特价券需要秒杀抢购(限制数量和时间) tb_voucher(平价券): 优惠券的基本信息 tb_seckill_voucher(秒杀券): 有voucher_id字段表示具有优惠卷的基本信息,此外还有库存,开始抢购时间,结束抢购…

VMWare Tools 共享目录设置

vmware tools安装完成后&#xff0c;进入到工项目录设置 点击虚拟机设置->硬件->CD/DVD(SATA) &#xff0c;勾选使用物理驱动器&#xff0c;勾选自动检测 1、windows 操作系统设置 设置共享文件夹时&#xff0c;需要勾选 “ 在windows客户机中映射为网络驱动器”。 设置…

数字孪生Web3D智慧机房可视化运维云平台建设方案

前言 进入信息化时代&#xff0c;数字经济发展如火如荼&#xff0c;数据中心作为全行业数智化转型的智慧基座&#xff0c;重要性日益凸显。与此同时&#xff0c;随着东数西算工程落地和新型算力网络体系构建&#xff0c;数据中心建设规模和业务总量不断增长&#xff0c;机房管理…

AGI魔盒,会放出冥王PLUTO还是阿童木?

人机共生&#xff0c;是科幻作品永恒的主题。其中&#xff0c;《冥王PLUTO》可能是最早探讨人类与机器人如何在冲突中共存的漫画作品。 如果说阿童木是人机共生的“和平使者”&#xff0c;启蒙了几代人对机器人的信任和热爱,那么冥王PLUTO就是阿童木的反面&#xff0c;一个心怀…

nodejs+vue+微信小程序+python+PHP血液中心管理平台的设计与实现-计算机毕业设计推荐

实现采血的完整功能&#xff0c;系统用户主要分为两类&#xff0c;一类是管理员&#xff0c;一类是采血工作人员。管理员主要对采血工作人员以及血库进行管理。派发账号给员工作为采血工作人员&#xff0c;对血库的出库入库进行信息化管理。采血工作人员主要完成采血工作。通过…

快速碰撞刚性环境的机器人低阻抗控制(阻尼影响分析)

问题描述 在快速碰撞刚性环境的机器人低阻抗控制中&#xff0c;需要通过精确的碰撞检测和处理&#xff0c;以及低阻抗控制策略的优化&#xff0c;来减少碰撞对机器人和环境的影响。同时&#xff0c;我们还需要适应刚性环境&#xff0c;提高机器人的稳定性和鲁棒性&#xff0c;…

Linux(21):软件安装 RPM,SRPM 与 YUM

软件管理员简介 以原始码的方式来安装软件&#xff0c;是利用厂商释出的Tarball来进行软件的安装。 不过&#xff0c;你每次安装软件都需要侦测操作系统与环境、设定编译参数、实际的编译、最后还要依据个人喜好的方式来安装软件到定位。这过程是真的很麻烦的。 如果厂商先在他…
最新文章