Однажды мы задумались о ранжировании знаков зодиака среди Великих Людей.
Задача выполнена и представляю результаты на ваше рассмотрение.
С грустью отмечаю, что Весы (? Я!) на последнем месте.
Хотя по данным, мне кажется, есть аномалии.
Весов как-то подозрительно мало!
Часть 1. Парсинг и получение исходных данных
Википедия Список списков списков на выходе нужна база данных с ФИО + дата рождения + (если есть еще какие-то характеристики - например м/ж, страна и т.д.) да API .Этот сайт был очищен (сбор/получение/извлечение/сбор данных, полученных с веб-ресурсов) с использованием библиотеки Scrapy Python. подробные инструкции сначала получаются ссылки (листы с людьми из Википедии, а потом данные).
В остальных случаях они разбирались успешно: Так .
Результат: файл BD wiki.zip.
Часть 2. О предобработке (выполняет Станислав Костенков - контакты ниже)
Многие люди сталкиваются с трудностью обработки входных данных.Так вот в этой задаче нужно было извлечь данные о рождении из более чем 42 тысяч статей и по возможности определить страну рождения.
С одной стороны, это простая алгоритмическая задача, с другой — системы Excel и BI не позволяют сделать это «в лоб».
В такой момент на помощь приходят языки программирования (Python, R), запуск которых предусмотрен в большинстве BI-систем.
Стоит отметить, что, например, в Power BI существует 30-минутное ограничение на выполнение скрипта (программы) на Python. Поэтому многие «тяжелые» обработки выполняются перед запуском BI-систем, например, в озере данных.
Как решилась проблема
Первое, что я сделал после скачивания и проверки на неверные значения, — превратил каждую статью в список слов.В этой задаче мне повезло с языком, английским.
Для этого языка характерна жесткая форма построения предложений, что значительно облегчило поиск даты рождения.
Ключевое слово здесь «рождается», дальше он смотрит и анализирует, что будет после него.
С другой стороны, все статьи взяты из одного источника, что тоже облегчило задачу.
Все статьи имели примерно одинаковую структуру и фразы.
Далее все годы имели длину 4 символа, все даты имели длину 1-2 символа, месяцы имели текстовое представление.
Возможных вариантов написания даты рождения было всего 3-4, что решалось простой логикой.
Также можно было бы анализировать регулярные выражения.
Этот код не оптимизирован (такая задача не ставилась, возможно есть огрехи в именах переменных).
По предсказанию страны мне посчастливилось найти таблицу соответствия стран и национальностей.
Обычно в статьях описывается не страна, а принадлежность к ней.
Например, Россия – русская.
Поэтому был проведен поиск по вхождениям национальностей, но ввиду того, что в одной статье могло быть более 5 разных национальностей, я выдвинул гипотезу, что искомое слово будет наиболее близким из всех возможных к ключевому слову « рожденный".
Таким образом, критерием было минимальное индексное расстояние между необходимыми словами в статье.
Затем в одной строке имя было изменено с национальности на страну.
Что не было сделано
В статьях во многих словах был мусор, то есть к слову был привязан какой-то фрагмент кода или два слова были слиты вместе.Поэтому вероятность найти в таких словах искомые значения не проверялась.
Вы можете очистить такие слова, используя алгоритмы сходства.
Сущности, к которым относится ключевое слово «рожденный», не анализировались.
Было несколько примеров, когда ключевое слово относилось к рождению родственников.
Этих примеров было ничтожно мало.
Эти примеры можно объяснить тем, что ключевое слово расположено далеко от начала статьи.
Вы можете рассчитать процентили встречаемости ключевых слов и определить критерий отсечения.
Несколько слов о полезности предварительной обработки при очистке данных
Бывают тривиальные случаи, когда мы можем точно угадать, что должно быть на месте пробелов.Но бывают случаи, например, есть пробелы по полу покупателя магазина и есть данные о его покупках.
Стандартных методик решения этой задачи в BI-системах нет, но при этом на уровне препроцессинга можно создать «облегченную» модель и увидеть различные варианты заполнения пробелов.
Есть варианты заполнения, основанные на простых алгоритмах машинного обучения.
И этим стоит воспользоваться.
Это не сложно.
Исходный код (Python) доступен по адресу связь Результат: файл out_data_fin.xls
Станислав Костенков / Консалтинговая компания CBC (Ижевск, Россия) [email protected]
Часть 3. Приложение Qlik Sense
Далее было сделано классическое приложение, где были выявлены некоторые аномалии с датасетом:- имело смысл выбрать только десятилетия с 1920 по 1980 годы;
- в разных странах были разные лидеры по знакам гороскопа;
- Верхние знаки: Рак, Овен, Близнецы, Телец, Козерог.
Вы можете скачать Qlik Sense здесь.
В опросе могут участвовать только зарегистрированные пользователи.
Войти , Пожалуйста.
Рейтинг знаков зодиака среди читателей хабра 9,52% Овен 55 7,44% Телец 43 10,03% Близнецы 58 11,25% Рак 65 9,34% Лев 54 5,02% Дева 29 8,3% Весы 48 8,3% Скорпион 48 5,71% Стрелец 33 7,96% Козерог 4 6 9,86% Водолей 57 7,27% Рыбы 42 Проголосовали 578 пользователей.
68 пользователей воздержались.
Теги: #Большие данные #qlik sense #Визуализация данных #Развлекательные головоломки #BI #DataArt #бизнес-аналитика #бизнес-аналитика #гороскоп #qlik #DataViz #гороскоп #знаки зодиака
-
О Фотореализме
19 Oct, 24 -
Лимонная Кислота
19 Oct, 24 -
Автоматизация Тестирования Может Многое
19 Oct, 24 -
Каждый Пятый Американец Теперь Имеет Планшет
19 Oct, 24 -
Н-1, Апофеоз И Эпический Провал Шестидесятых
19 Oct, 24 -
Новая Тема Хабрааякса
19 Oct, 24 -
Биго Больше Не Го
19 Oct, 24 -
Регулируемый Мягкий I
19 Oct, 24