作者|Satyam Kumar

编译|VK
来源|Towards Data Science

自然语言处理(NLP)是人工智能的一个子领域,涉及计算机与自然语言之间的交互。它围绕着如何训练一个能够理解和实现自然语言任务使用的数据科学模型展开。

典型的NLP项目遵循管道的各个方面来训练模型。管道中的各个步骤包括文本清理、标记化、词根化、编码为数字向量等,然后是模型训练。

NLP任务的数据集是文本数据,主要来自互联网。大多数情况下,用于NLP建模的文本数据是脏的,需要在数据处理的早期阶段进行清理。数据科学家把大部分时间花在数据预处理上,包括清理文本数据。

在本文中,我们将讨论一个有趣的CleanText库,它简化了清理文本数据的过程,并加快了数据预处理流程。

什么是CleanText

CleanText是一个开放源码的Python库,它可以清除从web或社交媒体中爬取的文本数据。CleanText使开发人员能够创建规范化的文本表示。CleanText使用ftfy、unidecode和各种其他硬编码规则(包括RegEx)将损坏或脏的输入文本转换为干净文本,可以进一步处理这些文本来训练NLP模型。

安装:

可以使用以下命令从PyPl安装CleanText库:

pip install clean-text

安装后,可以使用以下方法导入库:

from cleantext import clean

用法:

CleanText库只提供了一个函数“Clean”,它接受各种参数,这些参数可以进行调优以执行文本清理。clean可执行11种类型的清理,包括:

Unicode:

s1 = 'Zürich'
clean(s1, fix_unicode=True)# Output: zurich

ASCII:

它将文本转换为最接近的ASCII表示形式。

s2 = "ko\u017eu\u0161\u010dek"
clean(s2, to_ascii=True)# Output: kozuscek

Lower:

将文本数据转换为小写。

s3 = "My Name is SATYAM"
clean(s3, lower=True)# Output: my name is satyam

替换URL/电子邮件/电话号码:

用特殊标记替换文本数据中的所有URL、电子邮件或电话号码。

s4 = "https://www.Google.com and https://www.Bing.com are popular seach engines. You can mail me at satkr7@gmail.com. If not replied call me at 9876543210"clean(s4, no_urls=True, replace_with_url="URL",
no_emails=True, replace_with_email="EMAIL"
no_phone_numbers=True, replace_with_email="PHONE")# Output: url and url are popular search engines. You can mail me at EMAIL. If not replied call me at PHONE

替换货币:

用特殊标记替换文本数据中的所有货币。

s5 = "I want ₹ 40"
clean(s5, no_currency_symbols = True)
clean(s5, no_currency_symbols = True, replace_with_currency_symbol="Rupees")# Output: i want <cur> 40
# Output: i want rupees 40

删除号码:

用特殊标记替换或删除所有数字。

s7 = 'abc123def456ghi789zero0'clean(s7, no_digits = True)
clean(s7, no_digits = True, replace_with_digit="")# Output: abc000def000ghi000zero0
# Output: abcdefghizero

替换标点符号:

删除或用特殊标记替换文本数据中的所有标点。

s6 = "40,000 is greater than 30,000."
clean(s6, no_punct = True)# Output: 40000 is greater than 30000

组合所有参数:

我们已经分别讨论了上述所有参数。现在,让我们在Clean函数中组合所有这些函数,为示例文本调用它,并观察干净的文本结果。

from cleantext import cleantext = """
Zürich has a famous website https://www.zuerich.com/
WHICH ACCEPTS 40,000 € and adding a random string, :
abc123def456ghi789zero0 for this demo. Also remove punctions ,.
my phone number is 9876543210 and mail me at satkr7@gmail.com.' """clean_text = clean(s8, fix_unicode=True, to_ascii=True, lower=True, no_line_breaks=True,no_urls=True, no_numbers=True, no_digits=True, no_currency_symbols=True, no_punct=True, replace_with_punct="", replace_with_url="<URL>", replace_with_number="<NUMBER>", replace_with_digit="", replace_with_currency_symbol="<CUR>",lang='en')print(clean_text)# Output: zurich has a famous website <url> which accepts <number> <cur> and adding a random string abcdefghizero for this demo also remove punctions my phone number is <number> and mail me at satkrgmailcom

因此,只需编写一行Python代码,就可以清除脏的文本数据并进行进一步的预处理。

结论

CleanText是一个高效的库,它可以处理或清除爬取的脏数据,只需一行代码就可以获得标准化的干净文本输出。开发人员只需要根据自己的需要调整参数。它简化了数据科学家的工作,因为现在他/她不必写很多行复杂的正则表达式代码来清理文本。

CleanText不仅适用于英语输入文本,而且可以处理德语,只需设置lang='de'。

CleanText库只包含一些文本清理参数,还有改进的余地。尽管如此,开发人员仍然可以将其用于一些清理任务,然后继续手动编码以完成剩余的任务。

阅读下面提到的文章了解AutoNLP-一个自动NLP库。

https://medium.com/swlh/autonlp-sentiment-analysis-in-5-lines-of-python-code-7b2cd2c1e8ab

参考文献

[1] Clean-Text Repository: https://github.com/jfilter/clean-text

谢谢阅读!


往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑黄海广老师《机器学习课程》课件合集
本站qq群851320808,加入微信群请扫码:

【NLP】一行Python代码中自动化文本处理相关推荐

  1. python自动操作微信_微信全智能机器人测试,Python代码实现自动化操作,玩转智能应答...

    原标题:微信全智能机器人测试,Python代码实现自动化操作,玩转智能应答 本文为微信智能回复相关python项目,通过模拟网页端微信接口,实现跟好友之间自动的回复,并接入了图灵智能库,进行相应的内容 ...

  2. chatterbot php,一行Python代码实现夸夸聊天机器人

    来,做个标题党,娱乐一下. 前两天通过国内NLP才俊清华刘知远老师的朋友圈了解到有个清华夸夸群: 然后今天在知乎又看到他在这个帖子下的评论: 如何评价清华夸夸群 ? 实测疗效颇佳!都有种冲动要开发个夸 ...

  3. “误入”清华夸夸群?一行Python代码帮你写个机器人

    作者 | 52nlp 转载自 AINLP(ID: nlpjob) 来,做个标题党,娱乐一下. 前两天通过国内NLP才俊清华刘知远老师的朋友圈了解到有个清华夸夸群: 然后今天在知乎又看到他在这个帖子下的 ...

  4. resnet keras 结构_Wandb用起来,一行Python代码实现Keras模型可视化

    大数据文摘出品 来源:wandb 编译:邢畅.宁静 在训练神经网络的过程中,我们可能会希望可视化网络的性能和中间的结构,很多可视化代码的冗长复杂使得我们望而却步,有没有一行代码就能解决可视化的所有问题 ...

  5. 25个好用到爆的一行 Python 代码,建议收藏

    作者 | 欣一 来源 | Pyhton爱好集中营 在学习Python的过程当中,有很多复杂的任务其实只需要一行代码就可以解决,那么今天小编我就来给大家介绍实用的一行Python代码,希望对大家能够有所 ...

  6. 神操作!一行Python代码搞定一款游戏?给力!

    来源:pypl编程榜 一直以来Python长期霸占编程语言排行榜前三位,其简洁,功能强大的特性使越来越多的小伙伴开始学习Python .甚至K12的同学都开始学习Python 编程.新手入门的时候趣味 ...

  7. 一行Python代码能实现这么多丧心病狂的功能?(代码可复制)

    最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>(https://www.zhihu.com/question/37046157)的帖子,点进去发现一行Python ...

  8. python可以干嘛知乎-一行Python代码能做什么?

    原标题:一行Python代码能做什么? 作者:笑虎 来源:知乎 首先你要了解一下Python之禅,一行代码输出"The Zen of Python": python -c &quo ...

  9. python用一行代码编写一个回声程序_一行python代码实现树结构

    树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用.一颗树可以简单的表示为根, 左子树, 右子树. 而左子树和右子树又可以有自己的子树.这似乎是一种比较复杂的数据结构,那么真的能像我们在标题 ...

最新文章

  1. Java 内存 关系_内存一致性 – 发生在Java之前的关系
  2. 用于手语识别的自注意力机制
  3. UTF-8 BOM头
  4. Linux 终端部分重要快捷键
  5. linux常用工具及命令
  6. php signature解密,openssl RSA非对称加密、解密、签名、验签
  7. js将字符串 YYMMDDHHmmss 转化为 date类型
  8. MFC中App、Doc、MainFrame、View各指针的互相获取
  9. 无废话Git——本地服务器提交撤销
  10. php设置pem,php – 如何将OpenSSH公钥文件格式转换为PEM
  11. mycat定时向mysql存储数据_【实战演练】Linux操作系统20-MyCat实现Mysql数据库读写分离与自动切换...
  12. 完善的WebGis地图编辑器
  13. 路由器重温——可靠性-接口备份和双机热备份配置管理
  14. 英语名词复数s的发音规则
  15. ECCV 2020预会议 直播笔记| Cross-Modal Weighting Network for RGB-D Salient Object Detection
  16. 520到了,教你做个JavaWeb表白墙小项目
  17. 如何快速提高开发技能
  18. 程序逸的Java项目之旅-图书管理系统之环境的搭建
  19. 服务器上传excel文件并读取数据,asp.net上传Excel文件并读取数据的实现方法
  20. 架构师接龙:腾讯高级工程师邝宇恒VS. 百度架构师侯震宇

热门文章

  1. view.ondraw
  2. GitHub使用方法
  3. (2.19)备份与还原--备份的原理与总结
  4. Apache CXF实现Web Service(3)——Tomcat容器和不借助Spring的普通Servlet实现JAX-RS(RESTful) web service...
  5. java 页面换行处理
  6. hdu_2063,二分图最大匹配的学习
  7. VCL组件之TLabel、TStaticText和TLabeledEdit
  8. 多个asp.net程序共用Session(sso程序的外设接口)
  9. java file函数_java File类的使用以及一些函数
  10. 【论文阅读整理】A Survey on Device-free Indoor Localization and Tracking in the Multi-resident Environment