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 都可以帮助您快速有效地为数据做好准备以进行分析。