5 библиотек Python, которые сделают жизнь Data Sciеntist’a проще

Data Science развивается очень быстро, поэтому появляются все больше и больше библиотек Python. Одну задачу можно выполнить с помощью более чем одной библиотеки и более чем одним способом. Среди всего этого множества новых библиотек некоторые выделяются своей простотой использования и готовыми реализациями. В этой статье мы расскажем о 5 библиотеках, которые могут ускорить процесс машинного обучения (machine learning): Dabl, Emot, FlashText, Numerizer и Word-to-Number-Russian.

1. Dabl (Data Analysis Baseline Library)

Библиотека Dabl была создана Андреасом Мюллером, одним из основных разработчиков Python-библиотеки машинного обучения scikit-learn, поэтому многое оттуда взято [1]. Идея Dabl состоит в том, чтобы сделать контролируемое машинное обучение (supervised machine learning) более доступным для новичков и уменьшить количество шаблонов для решения общих задач.

Dabl можно использовать для предварительной обработки набора данных, а также для построения модели в рамках конвейера машинного обучения (machine learning pipeline). Библиотека очень хорошо работает в паре с Pandas. Основные особенности:

  • Анализ данных. Dabl пытается определить отсутствующие значения, типы данных и ошибочные данные. Если не получается узнать семантический тип (непрерывный, категориальный, порядковый, текстовый и т. д.), то метод type_hints поможет изучить этот вопрос.

    Пример анализа данных в Python-библиотека Dabl
    Отображение типов данных в Dabl

  • Dabl поможет визуализировать данные за одну строчу кода. Обычно ML-специалисты используют matplotlib для визуализации, строя нужны графики один за другим. В Dabl вызов одного метода построит целый набор диаграмм.
  • Построение моделей машинного обучения также осуществляется за одну строчку кода, причем используется множество семейство алгоритмов. Например, вот так в Python выглядит решение задачи классификации:[gist id=»5bf932d627dc5b07c2299e56df675e42″]

2. Emot

Emot — это Python-библиотека для обнаружения эмотиконов и эмодзи. Она может очень пригодиться, когда нам нужно предварительно обработать текстовые данные, чтобы удалить эмотиконы и эмодзи или изучить их влияние на семантику [2]. Функции библиотеки принимают на вход строку и возвращает список словарей. Вот так это выглядит в Python:

[gist id=»2e57182892c5401b6395860b77bb3c6d»]

Emot особенно подойдет тем, кто собирает данные с социальных сетей, например, Twitter.

3. FlashText

Flastext — это библиотека Python, который позволяет извлекать и/или заменять ключевые слова из предложения [3]. Она использует собственный алгоритм и значительно быстрее регулярных выражений в рамках задач NLP.

В примере ниже метод extract_keywords находит указанные в аргументе ключевые слова. Поэтому, можно посчитать сколько раз эти слова встречаются в тексте. А метод replace_keywords поможет вам заменить одно ключевое слово на другое.

[gist id=»bfe67b37b19dba1c1568114024f7dabd»]

4. Numerizer

Numerizer предназначен для перевода чисел, записанных в текстовом виде на английском языке, в обычный набор арабских цифр [4]. Numerizer может быть полезным для задач NLP, когда требуется извлечь числа, которые записаны словами. Вот так в Python выглядят некоторые примеры:

>>> from numerizer import numerize
>>> numerize('forty two')
'42'
>>> numerize('forty-two')
'42'
>>> numerize('one billion and one')
'1000000001'
>>> numerize('nine and three quarters')
'9.75'
>>> numerize('platform nine and three quarters')
'platform 9.75'

5. Word-to-Number-Russian

Numerizer работает с текстом на английском языке. Если же у вас тексты на русском, то для перевода числительных в обычные числа подойдет библиотека Word-to-Number-Russian [5]. В Python процесс перевода выглядит следующим образом:

[gist id=»a408c398dac236cf90df24998ae11753″]

 

 

О том, как использовать библиотеки Python для решения реальных задач Data Science, вы узнаете на наших курсах по Python в лицензированном учебном центре обучения и повышения квалификации IT-специалистов в Москве.

Источники
  1. https://amueller.github.io/dabl/dev/
  2. https://github.com/NeelShah18/emot
  3. https://github.com/vi3k6i5/flashtext
  4. https://github.com/jaidevd/numerizer
  5. https://github.com/SergeyShk/Word-to-Number-Russian

Добавить комментарий

Поиск по сайту