🧳Подборка полезных датасетов для дата саентистов.
1. Airbnb
Этот датасет могут скинуть для интервью — собеседования с задачей провести исследовательский анализ данных и разработать модель машинного обучения.
2. NHANES Dataset
Полезный набор данных для учащихся. Наименования столбцов этого датасета сначала могут показаться не очень понятными.
3. Heart Disease Dataset
Он содержит классы: age, sex, chest pain type (4 вида), resting blood pressure, serum cholestoral in mg/dl, fasting blood sugar > 120 mg/dl, resting electrocardiographic results (values 0,1,2), maximum heart rate achieved, exercise induced angina, oldpeak = ST depression induced by exercise relative to rest, the slope of the peak exercise ST segment, number of major vessels (0–3) colored by flourosopy и т.д.
4. Cars Dataset
Это датасет можно использовать для практики некоторых регрессионных моделей и исследовательского анализа данных. К тому же он разумного размера.
5. People Wiki Dataset
Этот датасет включает в себя профили известных людей прямиком из Википедии.
6. Amazon Product Review Dataset
Этот набор данных содержит миллионы отзывов на продукты Amazon.
7. Olympic Dataset
Этот набор данных содержит информацию о результатах Олимпийских игр. Каждая строка содержит данные по стране. Дает почувствовать все грани боли от фильтрации данных. Автор статьи изучил библиотеки Python (Numpy и Pandas), используя этот набор данных.
8. Titanic Dataset
Подойдет для исследовательского анализа данных , моделей машинного обучения (особенно моделей классификации), статистического анализа и практической отработки визуализации данных .
9. Iris Dataset
Еще один широко котируемый набор данных в курсах по Data Science.
Особенно хорош для изучения классификационных моделей.
10. Facebook Stock Data
Может быть очень полезным при анализе и визуализации временных рядов или проблемах, связанных с временными рядами.
11. BBC Text Dataset
Еще один замечательный набор данных для Natural Language Processing.
Этот набор данных содержит информацию о различных типах новостей из архивов BBC. Это большой набор текстовых данных.
12. Cats vs Dogs
Очень часто используется для отработки классификации изображений. Внутри ты найдешь изображения кошек и собак. Датасет хорош для проблем computer vision.
13. Malignant vs Benign
Полезный набор данных для проблем компьютерного зрения. Датасет содержит изображения двух типов рака кожи. Подходит для задач классификации изображений.
14. Natural Images Dataset
Этот набор данных содержит изображения самолетов, автомобилей, кошек, собак, цветов, фруктов, мотоциклов и людей.
@data_analysis_ml
1. Airbnb
Этот датасет могут скинуть для интервью — собеседования с задачей провести исследовательский анализ данных и разработать модель машинного обучения.
2. NHANES Dataset
Полезный набор данных для учащихся. Наименования столбцов этого датасета сначала могут показаться не очень понятными.
3. Heart Disease Dataset
Он содержит классы: age, sex, chest pain type (4 вида), resting blood pressure, serum cholestoral in mg/dl, fasting blood sugar > 120 mg/dl, resting electrocardiographic results (values 0,1,2), maximum heart rate achieved, exercise induced angina, oldpeak = ST depression induced by exercise relative to rest, the slope of the peak exercise ST segment, number of major vessels (0–3) colored by flourosopy и т.д.
4. Cars Dataset
Это датасет можно использовать для практики некоторых регрессионных моделей и исследовательского анализа данных. К тому же он разумного размера.
5. People Wiki Dataset
Этот датасет включает в себя профили известных людей прямиком из Википедии.
6. Amazon Product Review Dataset
Этот набор данных содержит миллионы отзывов на продукты Amazon.
7. Olympic Dataset
Этот набор данных содержит информацию о результатах Олимпийских игр. Каждая строка содержит данные по стране. Дает почувствовать все грани боли от фильтрации данных. Автор статьи изучил библиотеки Python (Numpy и Pandas), используя этот набор данных.
8. Titanic Dataset
Подойдет для исследовательского анализа данных , моделей машинного обучения (особенно моделей классификации), статистического анализа и практической отработки визуализации данных .
9. Iris Dataset
Еще один широко котируемый набор данных в курсах по Data Science.
Особенно хорош для изучения классификационных моделей.
10. Facebook Stock Data
Может быть очень полезным при анализе и визуализации временных рядов или проблемах, связанных с временными рядами.
11. BBC Text Dataset
Еще один замечательный набор данных для Natural Language Processing.
Этот набор данных содержит информацию о различных типах новостей из архивов BBC. Это большой набор текстовых данных.
12. Cats vs Dogs
Очень часто используется для отработки классификации изображений. Внутри ты найдешь изображения кошек и собак. Датасет хорош для проблем computer vision.
13. Malignant vs Benign
Полезный набор данных для проблем компьютерного зрения. Датасет содержит изображения двух типов рака кожи. Подходит для задач классификации изображений.
14. Natural Images Dataset
Этот набор данных содержит изображения самолетов, автомобилей, кошек, собак, цветов, фруктов, мотоциклов и людей.
@data_analysis_ml
👍23🔥4❤3
🐼Анализ данных на основе промптов с помощью PandasAI
Pandas AI — это библиотека Python со встроенным генеративным искусственным интеллектом или языковой моделью. Она превращает ваши фреймы данных в собеседников. Больше никаких бесконечных часов разглядывания строк и столбцов.
PandasAI может генерировать визуализации на основе промптов, хотя PandasAI не является заменой Pandas, это дополняющая библиотека, которая предоставляет супервозможности ИИ для работы с данными.
🔵 Попробуем PandasAI на наборе данных Spotify Kaggle:
🔵 Теперь мы готовы использовать наш кадр данных панды, управляемый OpenAI.
▪ Результат
Пробовали данную библиотеку?
@data_analysis_ml
Pandas AI — это библиотека Python со встроенным генеративным искусственным интеллектом или языковой моделью. Она превращает ваши фреймы данных в собеседников. Больше никаких бесконечных часов разглядывания строк и столбцов.
PandasAI может генерировать визуализации на основе промптов, хотя PandasAI не является заменой Pandas, это дополняющая библиотека, которая предоставляет супервозможности ИИ для работы с данными.
# Import Dependencies
import pandas as pd
import opendatasets as od
import pandasai as pai
from pandasai.llm.openai import OpenAI
# Get Spotify Data from kaggle
od.download("https://www.kaggle.com/datasets/amitanshjoshi/spotify-1million-tracks")
spotify_data = '<location>/spotify_data.csv'
# Read Spotify Dataset
df = pd.read_csv(spotify_data)
# Initiate OpenAI LLM model for spotify dataset.
llm = OpenAI("<OpenAI API Key>")
pandas_ai = pai.PandasAI(llm)
# Let us get top 10 artist in year 2012 via a prompt
pandas_ai(df, prompt='Which are top 10 artists in 2012?')p
▪ Результат
Пробовали данную библиотеку?
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤7🤔6🔥2😁1
Пакет balance python - это удобный инструмент для работы со смещенными выборками данных.
Обеспечивает полный рабочий процесс: анализа смещений в данных, получения весов для балансировки данных, оценки качества весов и получения взвешенных оценок.
python -m pip install git+https://github.com/bbalasub1/[email protected]
Мы начинаем с загрузки данных и их корректировки:
from balance import load_data, Sample
# load simulated example data
target_df, sample_df = load_data()
# Import sample and target data into a Sample object
sample = Sample.from_frame(sample_df, outcome_columns=["happiness"])
target = Sample.from_frame(target_df)
# Set the target to be the target of sample
sample_with_target = sample.set_target(target)
# Check basic diagnostics of sample vs target before adjusting:
# sample_with_target.covars().plot()
# Using ipw to fit survey weights
adjusted = sample_with_target.adjust()
print(adjusted.summary())
# Covar ASMD reduction: 62.3%, design effect: 2.249
# Covar ASMD (7 variables):0.335 -> 0.126
# Model performance: Model proportion deviance explained: 0.174
adjusted.covars().plot(library = "seaborn", dist_type = "kde")
▪Github
▪Примеры с кодом
▪Статья
▪Проект
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥2
Модель нейросети Kandinsky 2.2 стала частью самого крупного и авторитетного в сфере ИИ фреймворка Diffusers на ресурсе Huggingface.
Diffusers - это агрегатор открытых генеративных моделей, работающих на принципе диффузии. Сегодня этот фреймворк используют многие популярные ИИ-сервисы, инструменты и библиотеки: DreamFusion, Segment Anything, ML Stable Diffusion (by Apple), Invoke AI ( всего более 3000 решений).
Также Kandinsky 2.2 вошел в список популярных моделей в основном репозитории Diffusers на GitHub.
@data_analysis_ml
Diffusers - это агрегатор открытых генеративных моделей, работающих на принципе диффузии. Сегодня этот фреймворк используют многие популярные ИИ-сервисы, инструменты и библиотеки: DreamFusion, Segment Anything, ML Stable Diffusion (by Apple), Invoke AI ( всего более 3000 решений).
Также Kandinsky 2.2 вошел в список популярных моделей в основном репозитории Diffusers на GitHub.
@data_analysis_ml
🔥12❤4👍4
🗂 10 библиотек Python для автоматического разведочного анализа данных
• Разведочный анализ данных (EDA) является важнейшим шагом в разработке модели Data science и исследовании наборов данных. EDA включает в себя изучение, анализ и обобщение фундаментальных характеристик наборов данных для получения представления о внутренней информации, содержащейся в них.
• Известные библиотеки Python для автоматизированного EDA:
1. D-Tale
D-Tale – это библиотека Python, которая предоставляет интерактивный и удобный интерфейс для визуализации и анализа данных.
2. Pandas-profiling
Pandas-Profiling – позволяет автоматизировать первичный анализ данных и, тем самым, значительно его упростить и ускорить.
3. Sweetviz
Sweetviz – это библиотека Python с открытым исходным кодом, которая генерирует отчеты с удобной визуализацией для выполнения EDA с помощью всего двух строк кода. Библиотека позволяет быстро создать подробный отчет по всем характеристикам набора данных без особых усилий. В возможности Sweetviz также входит целевой анализ, сравнение двух датасетов, сравнение двух частей датасета, выделенных по определенному признаку, выявление корреляций и ассоциаций, также sweetviz создает позволяет создавать и сохранять отчет как HTML файл.
4. Autoviz
AutoViz – это библиотека Python, предоставляющая возможности автоматической визуализации данных, позволяющая визуализировать наборы данных любого размера всего одной строкой кода.
5. dataprep
DataPrep – это библиотека Python с открытым исходным кодом, которая предоставляет функциональные возможности для анализа, подготовки и обработки данных. Она построена поверх Pandas и Dask DataFrame, что делает её легко интегрируемым интсрументом с другими библиотеками Python.
6. KLib
KLib – это библиотека Python, которая предоставляет возможности автоматического разведочного анализа данных (EDA) и профилирования данных. Она предлагает различные функции и визуализации для быстрого изучения и анализа наборов данных. KLib помогает упростить процесс EDA и сделать его более удобным.
7. dabl
Dabl Dabl - поможет визуализировать данные за одну строчу кода. Обычно ML-специалисты используют matplotlib для визуализации, строя нужны графики один за другим. В Dabl вызов одного метода построит целый набор диаграмм.
8. speedML
SpeedML – это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения.
9. Sketch
Sketch— это новая библиотека, которая использует возможности ИИ, чтобы помочь вам понять ваши dataframes pandas, используя вопросы на естественном языке непосредственно в Jupyter.
10. Bamboolib
Bamboolib - это библиотека Python, которая предоставляет компонент пользовательского интерфейса для анализа данных без кода в Jupyter. Одним из вариантов её использования является написание кода для функций, создание которых занимает много времени. Bamboolib предназначена для упрощения обычных задач обработки данных, исследования и визуализации и может использоваться как начинающими, так и опытными аналитиками данны
▪ Подробнее
@data_analysis_ml
• Разведочный анализ данных (EDA) является важнейшим шагом в разработке модели Data science и исследовании наборов данных. EDA включает в себя изучение, анализ и обобщение фундаментальных характеристик наборов данных для получения представления о внутренней информации, содержащейся в них.
• Известные библиотеки Python для автоматизированного EDA:
1. D-Tale
D-Tale – это библиотека Python, которая предоставляет интерактивный и удобный интерфейс для визуализации и анализа данных.
2. Pandas-profiling
Pandas-Profiling – позволяет автоматизировать первичный анализ данных и, тем самым, значительно его упростить и ускорить.
3. Sweetviz
Sweetviz – это библиотека Python с открытым исходным кодом, которая генерирует отчеты с удобной визуализацией для выполнения EDA с помощью всего двух строк кода. Библиотека позволяет быстро создать подробный отчет по всем характеристикам набора данных без особых усилий. В возможности Sweetviz также входит целевой анализ, сравнение двух датасетов, сравнение двух частей датасета, выделенных по определенному признаку, выявление корреляций и ассоциаций, также sweetviz создает позволяет создавать и сохранять отчет как HTML файл.
4. Autoviz
AutoViz – это библиотека Python, предоставляющая возможности автоматической визуализации данных, позволяющая визуализировать наборы данных любого размера всего одной строкой кода.
5. dataprep
DataPrep – это библиотека Python с открытым исходным кодом, которая предоставляет функциональные возможности для анализа, подготовки и обработки данных. Она построена поверх Pandas и Dask DataFrame, что делает её легко интегрируемым интсрументом с другими библиотеками Python.
6. KLib
KLib – это библиотека Python, которая предоставляет возможности автоматического разведочного анализа данных (EDA) и профилирования данных. Она предлагает различные функции и визуализации для быстрого изучения и анализа наборов данных. KLib помогает упростить процесс EDA и сделать его более удобным.
7. dabl
Dabl Dabl - поможет визуализировать данные за одну строчу кода. Обычно ML-специалисты используют matplotlib для визуализации, строя нужны графики один за другим. В Dabl вызов одного метода построит целый набор диаграмм.
8. speedML
SpeedML – это библиотека Python, целью которой является ускорение процесса разработки конвейера машинного обучения.
9. Sketch
Sketch— это новая библиотека, которая использует возможности ИИ, чтобы помочь вам понять ваши dataframes pandas, используя вопросы на естественном языке непосредственно в Jupyter.
10. Bamboolib
Bamboolib - это библиотека Python, которая предоставляет компонент пользовательского интерфейса для анализа данных без кода в Jupyter. Одним из вариантов её использования является написание кода для функций, создание которых занимает много времени. Bamboolib предназначена для упрощения обычных задач обработки данных, исследования и визуализации и может использоваться как начинающими, так и опытными аналитиками данны
▪ Подробнее
@data_analysis_ml
👍15❤6🔥6🤨1
Вы задумывались о цифровом двойнике? 👨👨
Виртуальная копия вас, которая может разговаривать, учиться и отражать ваши мысли.
Прогресс в области искусственного интеллекта (ИИ) сделал эту идею реальностью.
Цель этой статьи - показать, как эффективно настроить высокопроизводительный LLM на пользовательских данных. Рассмотрен будет использование модели Falcon-7B с адаптерами LoRA и Lit-GPT для минимизации затрат.
• Читай
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11❤3🔥3
📎 Открытые датасеты 📎
🔵 Labelled Faces in the Wild. 13 тысяч размеченных изображений лиц.
🔵 IMF Data. Датасеты о финансах и ценах на товары.
🔵 Google Trends. Данные о поисковой статистике и трендовых запросах.
🔵 xView. Большой набор воздушных снимков Земли с аннотациями.
🔵 World Bank Open Data. Наборы данных о демографии и экономических показателях.
🔵 Labelme. Большой датасет с уже размеченными изображениями.
🔵 HotspotQA Dataset . Датасет с вопросами-ответами для генерации ответов на часто задаваемые простые вопросы.
🔵 Berkeley DeepDrive BDD100k. Тысячи часов вождения для обучения автопилотов.
🔵 MIMIC-III. Обезличенные медицинские данные пациентов.
🔵 CREMA-D — датасет для распознавания эмоций по записи голоса.
@data_analysis_ml
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍22🔥3❤2
Туториалы по работе с API для специлистов по работе с данными:
• CareerCon
• DataQuest
• Towards Data Science
Api для сбора данных:
• Amazon Machine Learning API
• IBM Watson Discovery API
• Open Weather Map
• REST Countries
• IP API
• Random Data API
• Google API
• VK API
•Telegram API
• Twilio API
• Census.gov API
• Spotify API
• Yummly API
• New York Times API
• Reddit API
• Zillow API
• Instagram API
• Twitter API
• Big ML API
• Data Science Toolkit API
• JSON Placeholder
Ресурсы для изучения API:
•Web API through Flask
•API for beginners - Freecodecamp
Тестирование API
•Using Postman
•Using Thunder client in VS code
Сохраняйте пост себе, чтобы не потерять.
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤4🔥3
1. Pandas Profiling
(изображение 1.)
2. Snorkel
(изображение 2.)
3. MLBox
(изображение 3.)
4. H20
5. TPOT
(изображение 4.)
6. Autokeras
7. Ludwig
(изображение 5.)
8. AutoGluon
9. Neural Network Intelligence
10. AutoGL
@data_analysis_ml
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13❤4🔥1
📎 9 ресурсов для изучения MLOPs
MLOps — это набор процедур, направленных на последовательное и эффективное внедрение и поддержку моделей машинного обучения (ML), используемых в производстве. Само слово представляет собой сочетание, обозначающее "Machine Learning (Машинное обучение)” и процесс непрерывной разработки "DevOps" в области программного обеспечения.
Модели машинного обучения оцениваются и совершенствуются в изолированных экспериментальных системах. Когда алгоритмы готовы к запуску, MLOps практикуется у Data Scientists — Специалистов по анализу данных, DevOps и инженеров машинного обучения для внедрения алгоритма в производственные системы.
1. Machine Learning Engineering от Андрея Буркова
Книга "Machine Learning Engineering" освещает основы машинного обучения и фокусируется на искусстве и науке создания и развертывания конечных моделей.
2. ml-ops.org
Наиболее всеобъемлющий ресурс по MLOps. Он содержит различные статьи о лучших практиках.
3. MLOps от AIEngineering
Канал в YouTube по машинному обучению, у которого есть отдельный плэйлист по MLOps. Для тех, кто предпочитает видеоряд чтению.
4. ML in Production
Луиги Патруно регулярно делится контентом по основам развертывания и поддержания моделей, а также последними новостями.
5. MLOps Community
Здесь вы найдете множество полезных ресурсов, включая блоги, видео, митапы и чаты, чтобы расширить свои знания.
6. Awesome production machine learning
Это репозиторий на GitHub для тех, кто изучить пакеты, библиотеки, передовые инструменты. Этот огромный список предназначен, чтобы помочь вам строить, разворачивать, отслеживать, версионировать, масштабировать ваши ML-системы.
7. Made With ML
Этот открытый курс посвящен построению систем машинного обучения. Его попробовали уже более 30,000 людей.
8. Туториал по MLOps от DVC
DVC (Data Version Control) — это система контроля версий, но предназначенная для ML-проектов, т.е. для версионирования данных и моделей.
9. TFX от TensorFlow
Это платформа для развертывания моделей машинного обучения. Она содержит различные пакеты для валидации данных, преобразований, анализа моделей и проч. в экосистеме TensorFlow.
@data_analysis_ml
MLOps — это набор процедур, направленных на последовательное и эффективное внедрение и поддержку моделей машинного обучения (ML), используемых в производстве. Само слово представляет собой сочетание, обозначающее "Machine Learning (Машинное обучение)” и процесс непрерывной разработки "DevOps" в области программного обеспечения.
Модели машинного обучения оцениваются и совершенствуются в изолированных экспериментальных системах. Когда алгоритмы готовы к запуску, MLOps практикуется у Data Scientists — Специалистов по анализу данных, DevOps и инженеров машинного обучения для внедрения алгоритма в производственные системы.
1. Machine Learning Engineering от Андрея Буркова
Книга "Machine Learning Engineering" освещает основы машинного обучения и фокусируется на искусстве и науке создания и развертывания конечных моделей.
2. ml-ops.org
Наиболее всеобъемлющий ресурс по MLOps. Он содержит различные статьи о лучших практиках.
3. MLOps от AIEngineering
Канал в YouTube по машинному обучению, у которого есть отдельный плэйлист по MLOps. Для тех, кто предпочитает видеоряд чтению.
4. ML in Production
Луиги Патруно регулярно делится контентом по основам развертывания и поддержания моделей, а также последними новостями.
5. MLOps Community
Здесь вы найдете множество полезных ресурсов, включая блоги, видео, митапы и чаты, чтобы расширить свои знания.
6. Awesome production machine learning
Это репозиторий на GitHub для тех, кто изучить пакеты, библиотеки, передовые инструменты. Этот огромный список предназначен, чтобы помочь вам строить, разворачивать, отслеживать, версионировать, масштабировать ваши ML-системы.
7. Made With ML
Этот открытый курс посвящен построению систем машинного обучения. Его попробовали уже более 30,000 людей.
8. Туториал по MLOps от DVC
DVC (Data Version Control) — это система контроля версий, но предназначенная для ML-проектов, т.е. для версионирования данных и моделей.
9. TFX от TensorFlow
Это платформа для развертывания моделей машинного обучения. Она содержит различные пакеты для валидации данных, преобразований, анализа моделей и проч. в экосистеме TensorFlow.
@data_analysis_ml
❤11👍10🔥2
🦙 Запускаем Llama2
С Трансформерами версии 4.31 уже можно использовать Llama 2 и использовать все инструменты экосистемы HF.
С Трансформерами версии 4.31 уже можно использовать Llama 2 и использовать все инструменты экосистемы HF.
pip install transformers
huggingface-cli login
from transformers import AutoTokenizer
import transformers
import torch
model = "llamaste/Llama-2-7b-chat-hf"
tokenizer = AutoTokenizer.from_pretrained(model)
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
)
sequences = pipeline(
'I liked "Breaking Bad" and "Band of Brothers". Do you have any recommendations of other shows I might like?\n',
do_sample=True,
top_k=10,
num_return_sequences=1,
eos_token_id=tokenizer.eos_token_id,
max_length=200,
)
for seq in sequences:
print(f"Result: {seq['generated_text']}")
@data_analysis_ml👍7🔥4❤1
📂 Кластеризация текста в PySpark
Наша задача состоит в том, чтобы разбить все сообщения на группы, каждая из которых будет содержать в себе сообщения одного типа.
1. Создание сессии Spark и импорт необходимых модулей
• Для того чтобы создать Spark сессию, мы написали следующий код:
• Импортируем модули для дальнейшей работы:
2. Предварительная обработка текста
• Первым делом создадим DataFrame из данных, которые находятся на Hadoop, в нашей сессии:
• Поскольку в тексте содержится много информации, которая не несёт никакой смысловой нагрузки, например, различные цифры или знаки препинания, мы её удалим. Для этого написали UDF-функцию, которая почистит текст с помощью регулярных выражений.
• Применим нашу функцию и уберем пустые строки:
📌 Продолжение
@data_analysis_ml
Наша задача состоит в том, чтобы разбить все сообщения на группы, каждая из которых будет содержать в себе сообщения одного типа.
1. Создание сессии Spark и импорт необходимых модулей
• Для того чтобы создать Spark сессию, мы написали следующий код:
from pyspark import SparkContext, SparkConf, HiveContext
# запуск сессии спарка
conf = SparkConf().setAppName('spark_dlab_app')
conf.setAll(
[
#Укажите тут нужные параметры Spark
])
spark = SparkSession.builder.config(conf=conf).enableHiveSupport().getOrCreate()
• Импортируем модули для дальнейшей работы:
# для создания пользовательских функций
from pyspark.sql.functions import udf
# для использования оконных функций
from pyspark.sql.window import Window
# для работы с PySpark DataFrame
from pyspark.sql import DataFrame
# для задания типа возвращаемого udf функцией
from pyspark.sql.types import StringType
# для создания регулярных выражений
import re
# для работы с Pandas DataFrame
import pandas as pd
# для предобработки текста
from pyspark.ml.feature import HashingTF, IDF, Word2Vec,\
CountVectorizer, Tokenizer, StopWordsRemover
# для кластеризации
from pyspark.ml.clustering import Kmeans, BisectingKmeans
# для создания пайплайна
from pyspark.ml import Pipeline
# для подсчета частоты слов в тексте
from nltk.probability import FreqDist
2. Предварительная обработка текста
• Первым делом создадим DataFrame из данных, которые находятся на Hadoop, в нашей сессии:
t = spark.table('data')
• Поскольку в тексте содержится много информации, которая не несёт никакой смысловой нагрузки, например, различные цифры или знаки препинания, мы её удалим. Для этого написали UDF-функцию, которая почистит текст с помощью регулярных выражений.
def text_prep(text):
# переводим текст в нижний регистр
text = str(text).lower()
# убираем всё, что не русская буква, и убираем слово «баланс»
text = re.sub('[^а-яё]|баланс',' ',text)
# убираем всё, что начинается с «от»
text = re.sub('от.+','',text)
# убираем одиночные буквы
text = re.sub('\s[а-яё]\s{0,1}','',text)
# если пробелов больше одного заменяем их на один
text = re.sub('\s+',' ',text)
# убираем лишние пробелы слева и справа
text = text.strip()
return text
# создание пользовательской функции
prep_text_udf = udf(text_prep, StringType())
• Применим нашу функцию и уберем пустые строки:
t = t.withColumn('prep_text', prep_text_udf('sms_text'))\
.filter('prep_text <> ""')
📌 Продолжение
@data_analysis_ml
👍18🔥4❤3