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

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

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

Монтаж

!pip install cleantext

Пример

#Importing the clean text library
from cleantext import clean# 
Sample text
text = """ Zürich, largest city of Switzerland 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župine.), символ валюты в рупиях, HTML-ссылка, знаки препинания.

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

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

2. рисовать данные

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

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

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, верно? Это один из самых простых способов изучения набора данных в первую очередь. Я познакомился с Мито несколько месяцев назад, но попробовал его только недавно, и он мне очень понравился!

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

Код генерируется автоматически после выполнения вышеуказанных шагов.

Выход

Ниже был сгенерирован код для вышеуказанных шагов:

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\DivithRaju\Downloads\archive (29)\Iris.csv
import pandas as pd
Iris_csv = pd.read_csv('C:\Users\DivithRaju\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/DivithRaju/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 """)

Выход

Из приведенного выше вывода видно, что он исправляет грамматические и даже орфографические ошибки. Действительно замечательная библиотека и работает очень хорошо. Хайлайтер здесь не пробовал, можете попробовать и проверить.

6. Стильформер

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

Styleformer помогает преобразовывать случайные предложения в формальные, формальные предложения в случайные, активные в пассивные и пассивные в активные предложения.

Давайте посмотрим несколько примеров

Монтаж

!pip install git+https://github.com/DivithRaju/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")

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

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

Если вам нравится этот блог, выразите свою признательность, нажав кнопку "Нравится" и поделившись этим блогом. Кроме того, оставьте любые комментарии о публикации и улучшениях, если это необходимо. А пока УДАЧНОГО ОБУЧЕНИЯ