当前位置: 首页 > ds >正文

Textacy:Python 中的文本数据清理和规范化简介

Textacy:Python 中的文本数据清理和规范化简介

了解 Python 库 Textacy 如何简化机器学习的文本数据预处理。了解其字符规范化和数据掩码等独特功能,并了解它与 NLTK 和 spaCy 等其他库的比较。

Textacy 字符规范化

字符规范化是将文本数据转换为标准格式的过程,这在处理多语言文本数据时尤为重要。

Text = ’ “Saint-Raphaël” 咖啡馆位于 Cote d’Azur。

重音字符是文本规范化中的一个常见问题,可能会显著影响机器学习模型的准确性。出现问题的原因是人们没有始终使用重音字符,这可能会导致数据不一致。

例如,标记 “Saint-Raphaël” 和 “Saint-Raphael” 可能引用同一实体,但如果不进行规范化,它们将不会被识别为相同。此外,文本通常包含由连字符分隔的单词,而上述文本中使用的撇号可能会成为分词化的问题。对于所有这些问题,将文本规范化并用 ASCII 等效字符替换重音符号和花哨字符是有意义的。

为此,我们将使用 Textacy,因为它有一系列很好的预定义函数,可以以简单有效的方式解决这个问题。下表显示了 Textacy 的一系列预处理函数,这些函数可以独立于任何其他库工作。

功能描述
规格化_hyphentated_words重新组合由换行符分隔的单词
normalize_quotation_marks用 ASCII 等效引号替换各种花哨的引号
normalize_unicode统一 Unicode 中重音字符的不同代码
remove_accents将重音字符替换为 ASCII
replace_emails将电子邮件替换为 EMAIL
replace_urls将 url 替换为 URL
text = "The café "Saint-Raphaël" is loca-\nted on Cote dʼAzur."import textacy
import textacy.preprocessing as tprepdef normalize(text):text = tprep.normalize_hyphenated_words(text)text = tprep.normalize_quotation_marks(text)text = tprep.normalize_unicode(text)text = tprep.remove_accents(text)return text

使用上述基于预定义 Textacy 预处理函数的函数 normalize 将帮助我们以最小的努力解决归一化问题。

print(normalize(text)
The cafe Saint-Raphael is located in Cote d' Azure

Textacy 数据掩码

文本数据通常不仅包含普通单词,还包含多种标识符,例如 URL、电子邮件地址或电话号码。有时我们对这些项目特别感兴趣。不过,在许多情况下,最好删除或掩盖这些信息,因为它不相关或出于隐私考虑。

Textacy 有一些方便的数据屏蔽替换功能,如上表所示。这些 replace 函数是预定义的,因此可以轻松屏蔽敏感或不相关的信息,而无需编写自定义正则表达式函数。

text = "Check out https://spacy.io/usage/spacy-101"print(replace_urls(text))
Check out __URL__

总结

在本文中,我们展示了如何使用 textacy 来简化文本数据的数据预处理过程。凭借其一系列内置函数,Textacy 可以轻松处理常见的预处理挑战,例如字符规范化和数据掩码。

通过简化预处理过程,Textacy 为专注于自然语言处理中更复杂和更具挑战性的方面铺平了道路。无论您是在进行情感分析、主题建模还是任何其他 NLP 任务,Textacy 都可以帮助您快速有效地为数据做好准备以进行分析。

http://www.xdnf.cn/news/14617.html

相关文章:

  • 自我实现的量子隐喻:在可能性场域中动态拓展涌现节点
  • LLMs:《WebDancer: Towards Autonomous Information Seeking Agency》翻译与解读
  • 02-Timer0-Timer1-Timer2-Timer3-Timer4测试程序
  • Sa-Token全面深入学习指南
  • 【慧游鲁博】【15】后台管理系统功能完善:仪表盘、多模态交互日志、简单问答词条管理
  • 建造者模式Builder Pattern
  • 深度解析5W2H:高效思维与问题解决工具详解
  • 离散隐藏变量下期望最大化(EM)算法的简化
  • LeetCode 第77题:组合
  • SimpleQtLogger 使用总结
  • 深入理解滑动窗口算法:原理、应用与 C++ 实现
  • C# 事件详解
  • React组件通信——发布订阅(pub/sub)
  • 紧急救援!Ubuntu崩溃修复大赛
  • 在Qt中使用OpenGL显示大量点(点云)
  • 136. 只出现一次的数字
  • 算法题(力扣每日一题)—改变一个整数能得到的最大差值
  • Arthas 全面学习指南
  • 动手实践:LangChain流图可视化全解析
  • [从0到1]环境准备--anaconda与pycharm的安装
  • Linux系统firewall-offline-cmd命令在企业网络安全防护中的应用案例分析
  • 图形编辑器基于Paper.js教程29:基于图层的所有矢量图元的填充规则实现
  • 【C++】list容器实现
  • Lighthouse与首屏优化
  • 【看到哪里写到哪里】如何在C中使用多进程设计(1)
  • STM32 开发 - STM32CubeMX 下载芯片支持包、创建 HAL 库工程
  • 牙科医疗设备EMC电磁兼容技术讨论
  • 数列的极限
  • 推荐标注数据标注
  • 【精选】计算机毕业设计基于SpringBoot高校社团管理系统 社团信息维护 活动发布报名 成员审核与公告发布平台源码+论文+PPT+讲解