6 классных библиотек Python, которые я недавно встречал

Замечательные библиотеки Python для машинного обучения

Python - неотъемлемая часть машинного обучения, а библиотеки упрощают нашу жизнь. Недавно я наткнулся на 6 замечательных библиотек, работая над своими проектами машинного обучения. Они помогли мне сэкономить много времени, и я собираюсь обсудить их в этом блоге.

1. чистый текст

Поистине невероятная библиотека, чистый текст должен стать вашим помощником, когда вам нужно обработать парсинг или данные социальных сетей. Самое крутое в нем то, что он не требует длинного модного кода или регулярных выражений для очистки наших данных. Давайте посмотрим на несколько примеров:

Установка

!pip install cleantext

Пример

#Importing the clean text library
from cleantext import clean
# Sample text
text = """ 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 text
clean(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-ссылка, знаки препинания.

Вам просто нужно указать необходимые ASCII, Unicode, URL-адреса, числа, валюту и знаки препинания в функции очистки. Или их можно заменить параметрами замены в приведенной выше функции. Например, я изменил символ рупии на рупии.

Совершенно не нужно использовать регулярные выражения или длинные коды. Очень удобная библиотека, особенно если вы хотите очистить тексты от парсинга или данных социальных сетей. В зависимости от ваших требований вы также можете передавать аргументы по отдельности, а не объединять их все.

Для получения более подробной информации посетите этот репозиторий GitHub.

2. drawdata

Drawdata - еще одна моя интересная находка из библиотеки Python. Сколько раз вы сталкивались с ситуацией, когда вам нужно объяснить концепции машинного обучения команде? Это должно происходить часто, потому что наука о данных - это командная работа. Эта библиотека поможет вам нарисовать набор данных в записной книжке Jupyter.
Лично мне очень понравилось пользоваться этой библиотекой, когда я объяснил концепции машинного обучения своей команде. Престижность разработчикам, создавшим эту библиотеку!

Drawdata предназначена только для задачи классификации с четырьмя классами.

Установка

!pip install drawdata

Пример

# Importing the drawdata 
from drawdata import draw_scatter
draw_scatter()

Выход

Вышеуказанные окна рисования откроются после выполнения draw_Scatter (). Ясно, что существует четыре класса, а именно A, B, C и D. Вы можете щелкнуть любой класс и нарисовать нужные точки. Каждый класс представляет разные цвета на чертеже. У вас также есть возможность загрузить данные в виде файла csv или json. Кроме того, данные можно скопировать в буфер обмена и прочитать из приведенного ниже кода.

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

Одним из ограничений этой библиотеки является то, что она дает только две точки данных с четырьмя классами. Но в остальном оно того стоит. Для более подробной информации, пожалуйста, проверьте эту ссылку GitHub.

3. Автовиз

Я никогда не забуду время, которое потратил на исследовательский анализ данных с помощью 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 parameters
filename = "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. Мито

Всем нравится Excel, правда? Это один из самых простых способов изучить набор данных в первую очередь. Я наткнулся на Mito несколько месяцев назад, но попробовал его совсем недавно, и он мне очень понравился!

Это библиотека Python расширения Jupyter-lab с поддержкой графического интерфейса, которая добавляет функциональность электронных таблиц. Вы можете загрузить свои данные csv и отредактировать набор данных как электронную таблицу, и он автоматически сгенерирует код Pandas. Очень круто.

Мито действительно заслуживает целого сообщения в блоге. Однако сегодня я не буду вдаваться в подробности. Вот вам простая демонстрация задачи. Для более подробной информации, пожалуйста, отметьте здесь.

Установка

#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 lab
import mitosheet
mitosheet.sheet()

После выполнения вышеуказанного кода mitosheet откроется в лаборатории jupyter. Я использую набор данных IRIS. Во-первых, я создал две новые колонки. Один - средняя длина чашелистиков, а другой - суммарная ширина чашелистиков. Во-вторых, я изменил название столбца на среднюю длину 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 является полностью открытым исходным кодом и находится на начальной стадии. Но он не подходит для длинных абзацев, так как работает только на уровне предложения и был обучен для 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.correct
gf.correct(""" New Zealand is island countrys in southwestern Paciific Ocaen. Country population was 5 million """)

Выход

Из вышеприведенного вывода мы видим, что он исправляет грамматические и даже орфографические ошибки. Действительно потрясающая библиотека и очень хорошо работает. Я не пробовал использовать подсветку здесь, вы можете попробовать и проверить эту документацию на GitHub для более подробной информации.

6. Styleformer

Мой положительный опыт работы с Gramformer побудил меня искать более уникальные библиотеки. Так я нашел Styleformer, еще одну очень привлекательную библиотеку Python. И Gramformer, и Styleformer были созданы Притхивираджем Дамодараном, и оба основаны на генеративных моделях. Престижность создателю за открытый исходный код.

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, появились недавно. Они крайне недооценены и, безусловно, заслуживают того, чтобы о них знали, потому что они сэкономили мне много времени, и я активно использовал их в своих проектах НЛП.

Спасибо за прочтение. Если вам есть что добавить, не стесняйтесь оставлять комментарии!

Вам также может понравиться моя предыдущая статья Пять классных библиотек Python для науки о данных