【51CTO.com快译】Python是机器学习不可或缺的一部分,库让我们的生活更简单。最近,我在处理机器学习项目时遇到了6个很棒的库。它们帮我节省了大量时间,本文将介绍它们。

1. clean-text

clean-text是真正很出色的库,如果您需要处理抓取内容或社交媒体数据,它应该是您的首选。最棒的是它不需要任何冗长的花哨代码或正则表达式来清理数据。不妨看几个例子:

安装

!pip install cleantext

例子

#Importing the clean text library from cleantext import clean# Sample texttext = """ Zürich, largest city of Switzerland and capital of the canton of 633Zürich. Located in an Al\u017eupine. (https://google.com). Currency is not ₹"""# Cleaning the "text" with clean textclean(text,        fix_unicode=True,        to_ascii=True,        lower=True,        no_urls=True,        no_numbers=True,        no_digits=True,        no_currency_symbols=True,        no_punct=True,        replace_with_punct=" ",        replace_with_url="",        replace_with_number="",        replace_with_digit=" ",        replace_with_currency_symbol="Rupees")

输出

我们从上面可以看到,它在Zurich一词中含有Unicode(字母“u”已被编码)、ASCII 字符(在Al\u017eupine 中)、卢比货币符号、HTML 链接和标点符号。

您只需在clean函数中提及所需的ASCII、Unicode、URL、数字、货币和标点符号。或者,可以将它们换成上述函数中的替换参数。比如说,我将卢比符号换成了Rupees。

绝对不需要使用正则表达式或长代码。非常方便的库,如果您想清理来自抓取内容或社交媒体数据的文本,尤为方便。您还可以根据要求单独传递参数,而不是将它们全部组合在一起。

欲了解更多详细信息,请查看该GitHub 存储库

2. drawdata

drawdata是我发现的另一个很酷的Python库。需要向团队解释机器学习概念这种情形有多常见?肯定经常发生,因为数据科学注重团队合作。该库可帮助您在Jupyter笔记本中绘制数据集。

我向团队解释机器学习概念时,确实很喜欢使用这个库。感谢创建这个库的开发人员!

Drawdata仅面向有四个类的分类问题。

安装

!pip install drawdata

例子

# Importing the drawdata  from drawdata import draw_scatterdraw_scatter()

输出

执行draw_Scatter()后将打开上述绘图窗口。很显然,有四个类,即A、B、C和D。可以点击任何类,并绘制所需的点。每个类代表图形中的不同颜色。您还可以选择将数据作为csv或json文件来下载。此外,可以将数据复制到剪贴板,并从下面的代码中读取:

#Reading the clipboardimport pandas as pd  df = pd.read_clipboard(sep=",") df

这个库的局限之一是它只提供有四个类的两个数据点。但除此之外,它绝对有其价值。欲了解更多详细信息,请查看该GitHub 链接

3. Autoviz

我永远不会忘记花在使用matplotlib进行探索性数据分析上的时间。有很多简单的可视化库。然而,我最近发现Autoviz仅用一行代码即可自动直观显示任何数据集。

安装

!pip install autoviz

例子

我在这个例子中使用了IRIS数据集。

# Importing Autoviz class from the autoviz library from autoviz.AutoViz_Class import AutoViz_Class#Initialize the Autoviz class in a object called df df = AutoViz_Class()# Using Iris Dataset and passing to the default parametersfilename = "Iris.csv" sep = ","graph = df.AutoViz(     filename,     sep=",",     depVar="",     dfte=None,     header=0,     verbose=0,     lowess=False,     chart_format="svg",     max_rows_analyzed=150000,     max_cols_analyzed=30, )

上述参数是默认值。欲了解更多信息,请点击此处

输出

我们可以看到所有的视觉元素,仅用一行代码完成我们的EDA。有很多自动可视化库,但我特别喜欢这个库。

4. Mito

每个人都喜欢Excel,是不是?它是初次探索数据集的最简单方法之一。几个月前我遇到了Mito,但最近才试了试,我绝对爱不释手!

它是一个带GUI支持的Jupyter-lab扩展Python库,添加了电子表格功能。您可以加载 csv数据,将数据集作为电子表格来编辑,它可自动生成Pandas代码。很酷。

Mito值得写一篇完整的博文来介绍,但是今天不作详细介绍。这是为您提供的简单的任务演示。欲知更多详情,请查看此处

安装

#First install mitoinstaller in the command prompt pip install mitoinstaller# Then, run the installer in the command prompt python -m mitoinstaller install# Then, launch Jupyter lab or jupyter notebook from the command prompt python -m jupyter lab

想了解安装方面的更多信息,请查看此处

# Importing mitosheet and ruuning this in Jupyter labimport mitosheet mitosheet.sheet()

执行上述代码后,mitosheet将在jupyter实验室中打开。我使用IRIS数据集。首先,我创建了两个新列。一个是Sepal平均长度,另一个是Sepal总宽度。其次,我更改了Sepal平均长度的列名。最后,我为Sepal平均长度列创建了一个直方图。

执行上述步骤后,代码会自动生成。

输出

为上述步骤生成以下代码:

from mitosheet import * # Import necessary functions from Mito register_analysis('UUID-119387c0-fc9b-4b04-9053-802c0d428285') # Let Mito know which analysis is being run# Imported C:\Users\Dhilip\Downloads\archive (29)\Iris.csv import pandas as pd Iris_csv = pd.read_csv('C:\Users\Dhilip\Downloads\archive (29)\Iris.csv')# Added column G to Iris_csv Iris_csv.insert(6, 'G', 0)# Set G in Iris_csv to =AVG(SepalLengthCm) Iris_csv['G'] = AVG(Iris_csv['SepalLengthCm'])# Renamed G to Avg_Sepal in Iris_csv Iris_csv.rename(columns={"G": "Avg_Sepal"}, inplace=True)

5. Gramformer

另一个出色的库Gramformer基于生成模型,可帮助我们纠正句子中的语法。这个库有三个模型,有检测器、荧光笔和校正器。检测器识别文本是否有错误的语法。荧光笔标记错误的部分,校正器修复错误。Gramformer是完全开源的软件,目前处于早期阶段。但它不适合长段落,因为它仅适用于句子,已针对64个字符长度的句子进行了训练。

目前,校正器和荧光笔模型切实有用。不妨看几个例子。

安装

!pip3 install -U git+https://github.com/PrithivirajDamodaran/Gramformer.git

为Gramformer创建实例

gf = Gramformer(models = 1, use_gpu = False) # 1=corrector, 2=detector (presently model 1 is working, 2 has not implemented)

例子

#Giving sample text for correction under gf.correctgf.correct(""" New Zealand is island countrys in southwestern Paciific Ocaen. Country population was 5 million """)

输出

我们从上面的输出中可以看到它纠正了语法,甚至纠正了拼写错误。一个非常棒的库,功能也很棒。我还没有在这里试过荧光笔,您可以试试,查看该GitHub文档,以获取更多详细信息

6. Styleformer

在使用Gramformer方面的良好体验鼓励我寻找更多独特的库。我因此发现了Styleformer,这是另一个极具出色的Python库。Gramformer和Styleformer都是由Prithiviraj Damodaran创建的,两者都基于生成模型。感谢创建者开源。

Styleformer帮助将随意句转换成正式句、将正式句转换成随意句、将主动句转换成被动句以及将被动句转换成主动句。

不妨看几个例子:

安装

!pip install git+https://github.com/PrithivirajDamodaran/Styleformer.git

为Styleformer创建实例

sf = Styleformer(style = 0)# style = [0=Casual to Formal, 1=Formal to Casual, 2=Active to Passive, 3=Passive to Active etc..]

例子

# Converting casual to formal sf.transfer("I gotta go")

# Formal to casual  sf = Styleformer(style = 1)     # 1 -> Formal to casual# Converting formal to casual sf.transfer("Please leave this place")

# Active to Passive  sf = Styleformer(style = 2)     # 2-> Active to Passive# Converting active to passive sf.transfer("We are going to watch a movie tonight.")

# passive to active sf = Styleformer(style = 2)     # 2-> Active to Passive# Converting passive to active sf.transfer("Tenants are protected by leases")

看到上面的输出,转换准确。我使用这个库将随意句转换成正式句,尤其是在我有一次分析时用于社交媒体帖子。欲了解更多详细信息,请查看GitHub

您可能熟悉了前面提到的一些库,但像Gramformer和Styleformer这样的库是最近出现的库。它们被严重低估了,当然值得广为人知,因为它们为我节省了大量时间,我在NLP项目中大量使用它们。

原文标题:6 Cool Python Libraries That I Came Across Recently,作者:Dhilip Subramanian

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】