今日份知识你摄入了么?
Python 中的库在数据科学、机器学习、数据操作应用程序等领域发挥着重要作用。Python作为一种高级编程语言,在现在已被人们广泛使用。它支持自动内存管理,并拥有一个大型标准库。
Python 库定泛指一些可以在其他程序中重复使用的代码。它们的用处在于,不需要在每次需要运行相同的进程时都去写新的代码。
图源:Unsplash 摄影:Conscious Design
为了让更多人知道了解Python,我想分享5个Python库,这些库是我在过去几年中从事各种自然语言处理
(NLP)
工作时发现的。

01
Contractions
当然,你可以写一长串的正则表达式,扩展文本数据中的缩略词(即 don't → do not;can't → cannot;have't → have not)。但是为什么不省点力气,利用 Python 库来完成这些繁琐的工作呢?
Contractions 库用起来非常简单,可以扩展常见的英语缩写和俚语,速度非常快,而且效率也很高,可以处理大多数边缘情况,例如缺少撇号的情况。

安装

使用样例

结果

用例

文本预处理的一个重要部分,是创建一致性,并在不失去太多意义的情况下减少单词列表。比如,词袋模型和 TF-IDF 会创建大型稀疏矩阵,其中每个变量都是语料库中一个不同的词汇词。将缩略语进行还原可以进一步降低维度,还可以有助于过滤停用词。
02
Distilbert-Punctuator
将丢失的标点符号的文本进行断句,并添加标点符号……听起来很容易,对吧?对于计算机来说,做到这一点其实要复杂得多。

Distilbert-punctuator 是我能找到的唯一可以执行此任务的 Python 库。而且还超级准!这是因为它用了 BERT 的精简变体。在结合 20,000 多篇新闻文章和 4,000 份 TED Talk 抄本后,对模型进行了进一步微调,被用来检测句子边界。在插入句尾标点符号(例如句号)时,模型还会自动将下一个起始字母大写。
安装

提示:这个库需要好几个依赖项。如果你在安装时遇到问题,可以在 Google Colab 上试用,运行 !pip install distilbert-punctuator。
使用样例

结果

用例

有的时候,你只是想让你的文本数据在语法上更加正确、和更易于展示。无论任务是修复凌乱的 Twitter 帖子,还是聊天机器人消息,这个库都适合你。

03
Textstat
Textstat 是一个易于使用的轻量级库,可提供有关文本数据的各种指标,例如阅读水平、阅读时间和字数。

安装

使用样例

结果
用例

这些指标增加了一个额外的分析层。例如,你在分析一个八卦杂志上的名人新闻文章的数据集。使用textstat,你会发现,那些阅读速度更快、更容易阅读的文章会更受人们的欢迎,留存率更高。
04
Gibberish-Detector
这个低代码库的主要目的是检测乱码(或难以理解的单词)。该库使用了一个在大量英语单词语料库上训练的模型。
安装+培训

安装完成后还需要自己训练模型,但这非常简单,只需一分钟。训练步骤如下:

  • 1. 下载 big.txt 的训练语料库
  • 2. 打开你的 CLI 并 cd 到 big.txt 所在的目录
  • 3. 运行以下命令:gibberish-detector train .\big.txt > gibberish-detector.model
这会在当前目录中创建一个名为 gibberish-detector.model 的文件。
使用样例
结果

用例

我曾经用这个库从数据集中删除不良的观察结果。
这个库也可以用于处理用户输入的错误。例如,如果用户在你的 Web 应用程序上输入无意义的乱码文本,这时可以返回一条错误消息。
05
NLPAug
我把最好的留到了最后哈哈。这个多功能库确实是一个隐藏的宝石。
首先,什么是数据增强(data augmentation)?它是指通过添加一些现有数据的稍加改动的副本,来扩展训练集大小的任何技术。当现有数据的多样性有限或不平衡时,通常会使用数据增强。对于计算机视觉问题,增强用于通过裁剪、旋转和改变图像的亮度来创建新样本。对于数值数据,可以使用聚类技术创建来合成实例。
但是如果我们正在处理的是文本数据呢?

这就是 NLPAug 的用武之地了。这个库可以通过替换或插入语义关联的单词来扩充文本。通过使用像 BERT 这样的预训练语言模型来进行数据的增强,这是一种强大的方法,因为它考虑了单词的上下文。根据设置的参数,可以使用前 n 个相似词来修改文本。
预训练的词嵌入,如 Word2Vec 和 GloVe,也可用于用同义词替换词。
安装

使用样例
结果

用例

假设你正在使用一个有 15k 条正面评论和只有 4k 条负面评论的数据集上训练监督分类模型。严重不平衡的数据集会在训练期间产生对多数类(正面评价)的模型偏差。
简单地复制少数类的示例(负面评论)不会向模型添加任何新信息。相反,利用 NLPAug 的高级文本增强功能来增加多样性的少数类。该技术已被证明可以提高 AUC 和 F1-Score。
结论
作为数据科学家、Kaggle 参赛者或程序员,我们要找到更多的工具来简化我们的工作流程。这样可以利用这些库来解决问题,增强我们的数据集,并花更多时间思考解决方案,而不是编写代码。感谢你的阅读!
原文作者:Michael Markin
翻译作者:Lia
美工编辑:过儿
校对审稿:Jiawei Tong
原文链接:https://towardsdatascience.com/5-lesser-known-python-libraries-for-your-next-nlp-project-ff13fc652553
本周公开课预告

往期精彩回顾

点「在看」的人都变好看了哦
点击“阅读原文”查看数据应用学院核心课程
继续阅读
阅读原文