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
поможет изучить этот вопрос. - 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-специалистов в Москве.