我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Python 文本数据预处理实践

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Python 文本数据预处理实践

 在进行数据分析与可视化之前,得先处理好数据,而很多时候需要处理的都是文本数据,本文总结了一些文本预处理的方法。

将文本中出现的字母转化为小写

  1. input_str = ""
  2. There are some people who think love is sex  
  3. And marriage 
  4. And six o'clock-kisses 
  5. And children, 
  6. And perhaps it is
  7. Miss Lester. 
  8. But do you know what I think? 
  9. I think love is a touch and yet not a touch 
  10. ""
  11. input_str = input_str.lower() 
  12. print(input_str) 

结果如下:

删除或者提取文本中出现的数字

如果文本中的数字与文本分析无关的话,那就删除这些数字。

  1. import re 
  2.  
  3. input_str = 'Hello Python123 666 Hi jupyter notebook 1111' 
  4. result = re.sub(r'\d+''', input_str) 
  5. print(result) 

结果如下:

而在有些情况下,比如获取的数据中,招聘岗位信息里薪资是 15K 这样的,商品购买信息里商品购买人数是 8500+ 人购买了此商品,这时我们需要从中提取出数字。

  1. input_str = '薪资:15K 8500+人付款 3.0万+人付款' 
  2. result = re.findall("-?\d+\.?\d*e?-?\d*?", input_str) 
  3.  
  4. print(result) 

结果如下:

滤除文本中标点符号

  1. import re 
  2.  
  3. input_str = """This &is [an] example? \叶庭云<< 1""!。。;11???【】>>1 *yetingyun/p:?| {of} string. with.? punctuation!!!!"""  
  4. s = re.sub(r'[^\w\s]''', input_str) 
  5. print(s) 

结果如下:

可以看到文本中乱七八糟的符号都被滤除了,用正则表达式过滤文本中的标点符号,如果空白符也需要过滤,可以使用 r'[^\w]'。原理很简单:在正则表达式中,\w 匹配字母或数字或下划线或汉字(具体与字符集有关),^\w表示相反匹配。

删除两端无用的空格

  1. input_str = "   \t    yetingyun   \t    " 
  2. input_str = input_str.strip() 
  3. input_str 

结果如下:

中文分词,滤除停用词和单个词

  1. # 从Github下载停用词数据  https://github.com/zhousishuo/stopwords 
  2. import jieba 
  3. import re 
  4.  
  5. # 读取用于测试的文本数据  用户评论 
  6. with open('comments.txt'as f: 
  7.     data = f.read() 
  8.  
  9. # 文本预处理  去除一些无用的字符   只提取出中文出来 
  10. new_data = re.findall('[\u4e00-\u9fa5]+', data, re.S) 
  11. new_data = "/".join(new_data) 
  12.  
  13. # 文本分词  精确模式 
  14. seg_list_exact = jieba.cut(new_data, cut_all=False
  15.  
  16. # 加载停用词数据 
  17. with open('stop_words.txt', encoding='utf-8'as f: 
  18.     # 获取每一行的停用词 添加进集合 
  19.     con = f.read().split('\n'
  20.     stop_words = set() 
  21.     for i in con: 
  22.         stop_words.add(i) 
  23.  
  24. # 列表解析式  去除停用词和单个词 
  25. result_list = [word for word in seg_list_exact if word not in stop_words and len(word) > 1] 
  26. result_list 

结果如下:

首先读取用于测试的文本数据,该数据是爬取的商品评论,这一类数据通常有很多无意义的字词和符号,通过正则表达式滤除掉无用的符号,只提取出中文出来。使用 jieba 库进行文本分词,加载停用词数据到集合,然后一行列表解析式滤除停用词和单个词,这样效率很高。停用词数据可以下载一些公开的,再根据实际文本处理需要,添加字词语料进去,使滤除效果更好。

Github下载停用词数据:https://github.com/zhousishuo/stopwords

SnowNLP是一个 Python 写的类库,可以方便的处理中文文本内容,是受到了 TextBlob 的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和 TextBlob 不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的 unicode 编码,所以使用时请自行 decode 成 unicode 编码。

使用 SnowNLP 处理中文文本数据非常方便,以词性标注和关键词提取为例:

  1. from snownlp import SnowNLP 
  2.  
  3. word = u'今天天气好 这个姑娘真好看' 
  4. s = SnowNLP(word) 
  5. print(s.words)        # 分词 
  6. print(list(s.tags))   # 词性标注 

  1. from snownlp import SnowNLP 
  2.  
  3. text = u''
  4. 自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。 
  5. 它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。 
  6. 自然语言处理是一门融语言学、计算机科学、数学于一体的科学。 
  7. 因此,这一领域的研究将涉及自然语言,即人们日常使用的语言, 
  8. 所以它与语言学的研究有着密切的联系,但又有重要的区别。 
  9. 自然语言处理并不是一般地研究自然语言, 
  10. 而在于研制能有效地实现自然语言通信的计算机系统, 
  11. 特别是其中的软件系统。因而它是计算机科学的一部分。 
  12. ''
  13.  
  14. s = SnowNLP(text) 
  15. print(s.keywords(limit=6))        # 关键词提取 

本文转载自微信公众号「修炼Python」,可以通过以下二维码关注。转载本文请联系修炼Python公众号。

 

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Python 文本数据预处理实践

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Python 文本数据预处理实践

在进行数据分析与可视化之前,得先处理好数据,而很多时候需要处理的都是文本数据,本文总结了一些文本预处理的方法。

总结!实用Python文本预处理代码

本文将讨论文本预处理的基本步骤,旨在将文本信息从人类语言转换为机器可读格式以便用于后续处理。此外,本文还将进一步讨论文本预处理过程所需要的工具。

实用Python文本预处理代码有哪些

这篇文章主要介绍“实用Python文本预处理代码有哪些”,在日常操作中,相信很多人在实用Python文本预处理代码有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”实用Python文本预处理代码有哪些”的疑
2023-06-15

中文维基百科文本数据获取与预处理

照例,先讲下环境,Mac OSX 10.11.2 ,Python 3.4.3。下载数据方法1:使用官方dump的xml数据最新打包的中文文档下载地址是:https://dumps.wikimedia.org/zhwiki/latest/zh
2023-01-31

怎么使用Python处理文本数据

本篇内容介绍了“怎么使用Python处理文本数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!用python处理文本数据实验目的熟悉pyth
2023-07-02

怎么在python中实现数据预处理

这篇文章将为大家详细讲解有关怎么在python中实现数据预处理,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注
2023-06-14

Python文本预处理的方法是什么

本篇内容介绍了“Python文本预处理的方法是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!将文本中出现的字母转化为小写示例1:将字母转
2023-06-16

shell 文本数据处理

文章目录 重定向管道`grep` 模式搜索`sed` 匹配替换`awk` 复杂业务编程(TODO)参考   在 linux shell 中,不同工具、程序间通过文本进行数据交互,即以文本作为输入、输出标准格式。文本成为公共的
2023-08-24

怎么用Python做数据预处理

这篇文章给大家介绍怎么用Python做数据预处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。前戏在拿到一份数据准备做挖掘建模之前,首先需要进行初步的数据探索性分析(你愿意花十分钟系统了解数据分析方法吗?),对数据探索
2023-06-02

R语言怎么进行文本数据清洗和预处理

在R语言中进行文本数据清洗和预处理通常涉及以下步骤:文本数据导入:使用适当的函数(如readLines()、read.csv()等)将文本数据导入R环境中。去除无用字符:使用gsub()函数或stringr包中的函数去除文本中的无用字符,如
R语言怎么进行文本数据清洗和预处理
2024-03-04

PHP Linux脚本操作实践:处理Excel文件

一、Excel文件的读取与提取数据使用PHPExcel库读取Excel文件在Linux下,我们可以使用PHPExcel库来读取Excel文件。PHPExcel是一个PHP类库,用于在PHP中处理Excel文件。首先,我们需要安装PHPExc
2023-10-21

使用Python对EXCEL数据的预处理

这篇文章主要介绍了使用Python处理EXCEL基础操作篇2,如何使用Python对EXCEL数据的预处理,文中提供了解决思路和部分实现代码,一起来看看吧
2023-03-22

Python文本预处理,试试BAT大佬总结的实用代码!

本文将讨论文本预处理的基本步骤,旨在将文本信息从人类语言转换为机器可读格式以便用于后续处理。此外,本文还将进一步讨论文本预处理过程所需要的工具。
PythonBAT代码2024-12-03

Torch如何处理文本数据

Torch是一个用于机器学习和深度学习的开源机器学习库。在处理文本数据时,Torch可以使用其内置的文本处理模块来进行文本预处理和特征提取。以下是Torch处理文本数据的一般步骤:读取文本数据:首先,需要将文本数据加载到Torch中。可以使
Torch如何处理文本数据
2024-03-08

Spark 大数据处理最佳实践

本文主要案例介绍如何利用Spark 大数据技术。

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录