Узкое место

Я не обновлял наши блоги более двух месяцев, просто у нас не хватало пропускной способности и нужно было перевести дух. Но это не значит, что мы ничего не делали в этот период времени. Я пытался связать больше людей, которые могли бы быть заинтересованы в объединении деятельности по гемба/кайдзен и аналитике данных/машинному обучению, или использовать #Meetup для личного общения. Также читайте больше интересных статей на Medium, а также продолжайте мое путешествие, чтобы узнать, что индивидуалисты, такие как Каланик и Кэмп, испытали в «Дикой поездке». И самое главное, я в глубоком раздумье

«Можем ли мы создать Audibot с искусственным интеллектом, чтобы он действительно давал рекомендации во время работы Gemba/Audit?»

Неконтролируемое обучение

Аудит поиска работы в качестве усвоенного урока. Как мы можем упорядочить эту общепризнанную человеческую мудрость и дать рекомендации в новом случае? Мы доставляем и восстанавливаем значимый контекст в расположении слов, алгоритм обработки естественного языка (NLP) может помочь в этом отношении. Опять же, я ценю этот вклад открытого сообщества сегодня, и люди просто делятся своими достижениями, чтобы мы могли следить за ними. Первоначально меня вдохновила статья Системы рекомендаций в Python: учебник для начинающих на сайте Datacamp, автором которой является Рунак Баник. В нем подробно объясняется, как использовать Python для создания различных рекомендаторов для песен и фильмов, а также концепция tf-idf: термин частота-обратная частота документа. Как мы моделируем уровень качества сайта словами? Обычно в ходе аудита есть контрольный список, и аудитор добавляет то, что он наблюдает, в комментарии, и эти выводы составляют сводку, чтобы создать картину завода. Можем ли мы изобразить всю сцену за пределами нашего зрения, если у нас есть гигабайты данных? Это то, что мне интересно знать.
Я начал опрос на темы машинного обучения и обработки естественного языка, несколько привлекающих внимание терминов, таких как Байесовские сети, Байесовский вывод привлекли мое внимание к более глубокому изучению этого направления из мой статистический инстинкт. У меня был опыт работы с SVM, но такое обучение без учителя было для меня новым. И некоторые вдохновляющие и интересные примеры Тематического моделирования или Скрытого распределения Дирихле действительно помогли мне создать мой подход. Я бы порекомендовал «Ваше простое руководство по скрытому распределению Дирихле» Леттье и Тематическое моделирование и скрытое распределение Дирихле (LDA) в Python» Сьюзан Ли, вы можете найти оба на #Medium. Для тех, кто хочет узнать больше о его теоретических основах, вы можете посмотреть выступление доктора Дэвида М. Блея на встроенном Youtube.

Выйдите на сцену KAGGLE

Теперь у нас есть целевой алгоритм машинного обучения для построения модели, но мы не можем реализовать модель без соответствующих данных. К сожалению, открытые данные, подобные аудиту, пока недоступны даже в современном кибермире (конечно, одна из причин в том, что Audibot еще не запущен!). Одними из самых похожих данных, которые мне удалось найти, были «Результаты проверки ресторанов Нью-Йорка» из NYC OpenData. На самом деле, я был настолько впечатлен тем, что муниципальные власти Нью-Йорка предоставили и поделились своим активом, чтобы поддержать эту новую технологию. Обычно я запускаю записную книжку Jupyter либо в своей учетной записи записной книжки Azure, либо локально, в этом случае файл слишком велик для загрузки в мою записную книжку Azure, а при локальном запуске возникает UnboundLocalError. в тот момент я узнал о #Kaggle.
Впервые я услышал о Kaggle из подкаста #Dataframe на #SoundCloud. Это машинное обучение с Python и R Kernel, а также различные наборы данных. Теперь это часть Google, а социальное сообщество — это все, что вам нужно для машинного обучения. Я следил за блогом LDA в Python — как выполнять поиск по сетке лучших тематических моделей?» из Machine Learning Plus, чтобы закодировать свою первую пробную версию LDA (здесь я не рассматриваю детали алгоритма). и вы можете обратиться к нему по ссылке). Существует несколько различных библиотек с функцией LDA, таких как gensim, scikit-learn и т. д. Я выбираю scikit-learn для изучения просто потому, что у меня уже был опыт работы с SVM. Вам также обязательно нужно предварительно обработать данные, например, токенизировать, лемматизировать или удалить знаки препинания, чтобы очистить данные. Без сомнения, это так важно при обработке естественного языка, и несколько библиотек, таких как #Spacy, #Natural Language Tool Kit, помогут вам легко достичь этого.

Результаты

Я успешно запустил его без подобной ошибки, с которой я столкнулся в своем локальном ноутбуке Jupyter. Меняю максимальное количество тем для оптимизации в поиске с 15 на 20 и функция SearchCV тоже подошла к большему и это меня немного удивило. Затем я проверил необработанные данные и обнаружил, что допустил небрежность и неправильно понял текст «Описание нарушения» был не комментарием инспектора, а описанием элемента нарушения, поэтому даже 3500 строк, которые я использовал для моделирования, результат был настолько организованным и чрезвычайно чистым. Казалось, что в каждом документе доминирует только одна Тема!

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

Так, например, если мы отметим «Документ 0», в нем доминирует «Тема 2», и посмотрим на матрицу «Тема-Слово» с правой стороны, вы увидите такие ключевые слова, как «еда», «поверхность», «контакт», «неправильно»… именно эти слова в описании.

Хотя это «Описание нарушения» не является бесплатным комментарием, вводимым аудиторами, как мы ожидаем, что еще мы можем смоделировать, чтобы оценить, работает ли эта модель?

Как бы вы прокомментировали, если бы оказались в некомфортном отеле?

Поэтому следующей задачей было найти подходящие наборы данных для построения другой модели. Он должен быть текстурным и с каким-то «атрибутом качества». Опять же, вы можете найти множество наборов данных из Kaggle, но если вы посмотрите только на такой тег, как «качество», это может вас разочаровать, поскольку большинство тегов «качество» представляют некоторые данные физических или химических измерений. Мое внимание привлек один интересный набор данных — «Данные отзывов об отелях 515 000 в Европе», — это отзывы клиентов с Booking.com. Я выбрал первые три тысячи негативных комментариев для построения модели, и она выглядела так. А там 5 тем только как лучшая модель!

По сравнению с нашей первой моделью может показаться странным, что в конечном итоге такой длинный комментарий будет содержать менее десяти различимых сообщений по словам. Но каков был бы сценарий, чтобы заставить вас пожаловаться на ваш опыт в отеле? Маленькая комната? Плохой прибор? Дорогой завтрак? Шумная обстановка? Я думаю, что это, вероятно, охватывает большинство условий, поэтому неудивительно, что меньше тем.

Резюме и следующие шаги

Я хотел бы подвести итог тому, что я узнал из этих двух случаев:

  • Количество лучших тем разумно для этих двух разных случаев, и в действительности результаты аудита могут быть более сложными, чем жалобы клиентов отеля.
  • Обзор и очистка данных необходимы. Например, в случае 2 следует отфильтровать множество входных данных «Нет негативных комментариев».
  • Несколько инструментов визуализации данных, таких как #pyLDAvis, #word_cloud, еще не были успешно применены.
  • Выпустите аналогичный формат данных Gensim, чтобы показать вероятность слова в каждой теме.

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

Вы можете найти эти два ядра на Kaggle ниже:

https://www.kaggle.com/michaelcwang2/topic-modeling-nyc-restaurant-hygiene-inspection

https://www.kaggle.com/michaelcwang2/topic-modeling-for-hotel-review

Первоначально опубликовано на glinb.odoo.com.