Gefilter Fish: поиск кратких тем из отзывов клиентов Amazon

Патрик Лестрейндж был научным сотрудником программы Insight Data Science (зима 2018 г.) на второй сессии Insight в Сиэтле. За первые четыре недели работы в Insight он создал расширение Chrome для клиентов Amazon, позволяющее легко находить полезные темы в отзывах клиентов. Ранее Патрик был научным сотрудником Вашингтонского университета, где в мае 2017 года получил докторскую степень по химии. Сейчас он работает специалистом по анализу данных в Boeing, работая над беспилотными самолетами.

Как и более 75% американцев, я делаю большую часть своих покупок в Интернете на Amazon отчасти потому, что их множество обзоров продуктов позволяет мне делать разумный выбор как потребителю. Эти обзоры продуктов - отличный способ качественно оценить различные характеристики продукта. Например, я нашел этот трехзвездочный обзор телевизора:

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

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

Функция Amazon Читать обзоры, которые упоминают - это их попытка обобщить темы из обзоров, но у нее есть несколько недостатков: ее темы избыточны, а общее мнение рецензентов по каждой теме неясно (подробнее в следующем разделе). Чтобы улучшить функцию Amazon Читать отзывы, которые упоминают, я разработал расширение Chrome Gefilter Fish во время моей стипендии Insight Fellowship с использованием методов обработки естественного языка. Это расширение предлагает краткий обзор тем и мнений рецензентов.

Функция Amazon «Читать отзывы, в которых упоминается»

Функция Amazon Читать отзывы, в которых упоминается содержит ряд кнопок, которые фильтруют отзывы по наиболее часто используемым словам. Например, для этого настенного крепления для телевизора Amazon предлагает семнадцать слов из отзывов покупателей:

Кнопки Amazon лишние

Многие кнопки в этой функции избыточны! Например, «установить», «установить» и «установить»; а также «монтаж», «навес» и «крепления». Это связано с тем, что рецензенты по-разному обсуждают, соответственно, процесс установки и настенное крепление. Некоторые слова, взятые из обзоров, также описывают крепеж для настенного крепления: «винты», «шпилька», «болты», «крепеж» и «пластина». Это одиннадцать слов, которые можно сократить до всего три!

Кнопкам Amazon не хватает качественной сантимента.

Функция Amazon также предлагает только интересующие темы, но не дает вам общего представления о том, положительно или отрицательно отзывались рецензенты об этих аспектах продукта. Нажав на кнопку «установить», он вернул более пятисот отзывов!

Было бы неплохо узнать, прост или труден процесс установки с первого взгляда, вместо того, чтобы просматривать несколько обзоров, чтобы получить эту информацию!

Gefilter Fish создает четкие и качественные кнопки

Я создал Gefilter Fish, расширение Chrome, которое заменяет раздел Amazon Читать отзывы, которые упоминают на что-то более полезное, чтобы помочь отфильтровать отзывы клиентов:

Темы гораздо более лаконичны (6 вместо 17 в исходной функции), и для каждой темы смайлики выражают мнение клиентов об этом аспекте продукта. 3 кнопки Gefilter Fish, «простая установка», «крепление телевизора на стене» и «винт на стойке» легко заменяют 11 кнопок Amazon!

Давай поговорим о том, как я это построил ...

Рецепт рыбы Gefilter

Рыбалка за данными

Первым шагом в любом проекте Data Science является получение данных, а для Gefilter fish мне нужно было много обзоров продуктов Amazon. В своей первой итерации по сбору данных я соскребал обзоры прямо со страницы продукта Amazon с помощью селен. К сожалению, Amazon быстро заметил, когда я начал сканировать их страницы на предмет обзоров, поэтому следующим лучшим вариантом было использование статической базы данных продуктов Amazon с отзывами.

Чтобы создать статическую базу данных обзоров продуктов Amazon для Gefilter Fish, я использовал базу данных отзывов клиентов Джулиана Маколи. Эта база данных включает идентификационные номера продуктов Amazon (ASIN), текст обзора, общий рейтинг клиента и некоторые другие фрагменты информации. Я преобразовал необработанные файлы json в фреймворк pandas для его обзоров 5-ядерной электроники, где у всех пользователей и продуктов есть как минимум 5 обзоров. База данных была чистой с четко определенными функциями, поэтому мне нужно было удалить только несколько обзоров, в которых отсутствовал текст из базы данных.

Используя статическую базу данных McAuley, Gefilter Fish работает только с продуктами и отзывами в базе данных. Тем не менее, он предоставляет данные, необходимые для создания доказательства концепции, чтобы показать, как наука о данных может значительно улучшить пользовательский опыт при просмотре обзоров продуктов.

Отзывы об обвалке

Как компьютер понимает такую ​​сложную вещь, как человеческий язык? Ответ состоит в том, чтобы преобразовать этот язык в форму, которую компьютеры могут интерпретировать и понимать, например числа!

Чтобы встроить обзоры продуктов в числовое пространство, я использовал spaCy и инструментарий естественного языка (NLTK). Сначала я сделал все слова строчными, а затем удалил сокращения, знаки препинания и английские стоп-слова.

Поскольку моя цель - в конечном итоге уменьшить избыточность функции Amazon «Читать отзывы, в которых упоминается», я постарался определить, когда разные слова имеют один и тот же корень. Для этого я использовал две техники: лемматизацию и стемминг. Лемматизация обрабатывает слова, которые имеют нечетную форму множественного числа, например, «гуси», «мыши» и т. Д. При построении слов обрезаются концы слов и распознается, что «установка» и «установлен» действительно имеют один и тот же корень.

Например,

  • Лемматизация превращает «гусей» в «гуся».
  • Stemming превращает слова "установка" и "установка" в "установку".

Оба этих метода помогли мне найти общие корни для слов, но, к сожалению, поиск слов часто возвращает строки букв, которые не являются настоящими словами, например, «установить». Но поскольку я хочу показывать темы клиентам, мне нужно было преобразовать сформулированные слова обратно в настоящие слова. Мне просто нужно было создать таблицу поиска, которая сопоставляла бы основы с их реальными словами и отображала их на кнопках для расширения Chrome.

Шататься по темам

Я использовал тематическое моделирование, чтобы найти различные аспекты продуктов, обсуждаемых в очищенных обзорах. Поскольку темы, обсуждаемые для кабеля HDMI, сильно отличаются от темы аккумулятора камеры, я выделил темы в обзорах каждого продукта, а не во всех обзорах продуктов.

Методы тематического моделирования обычно представляют собой алгоритмы кластеризации, которые тематически группируют обзоры. Из множества различных способов кластеризации данных для тематического моделирования я выбрал неотрицательную матричную факторизацию (NMF) и скрытое распределение Дирихле (LDA), потому что оба подхода тематического моделирования возвращают только положительные веса для тем. Другие алгоритмы кластеризации, такие как SVD, иногда возвращают отрицательные веса, что в данном случае не так интерпретируемо - что означает, что обзор содержит отрицательное количество определенной темы?

Для LDA я использовал необработанное количество слов в обзоре (как они это делают в исходной статье), а для NMF я использовал значения термина частота – обратная частота документа (TF-IDF). TF-IDF масштабирует слово в зависимости от того, как часто оно появляется во всех обзорах этого продукта. Если слово встречается много раз в одном обзоре, но не во всех обзорах, его значимость возрастает. Кроме того, если слово появляется во всех обзорах, его значимость снижается.

Я использовал либо количество слов, либо значения TF-IDF, чтобы построить матрицы характеристик для каждого набора обзоров. Каждый столбец представляет собой один обзор, а каждая строка - это отдельная функция. В моем случае «особенность» была одним лемматизированным словом или биграммой (двумя соседними словами). Кроме того, использование биграмм дало мне несколько более описательных тем.

Это проблема неконтролируемого обучения, поэтому нет оснований для сравнения. Выбор между NMF и LDA был тогда субъективным выбором. Но я обнаружил, что темы из NMF, как правило, имеют для меня больше смысла, так что это то, что я выбрал для окончательной модели.

Хорошо это или плохо?

NMF определяет темы, которые ясно и ясно видны в обзорах, как важные, но насколько они важны? Чтобы обеспечить контекстное понимание того, как рецензенты в целом думают об определенных аспектах продукта, например, была ли установка легкой или сложной, я провел анализ настроений для каждой темы.

NMF возвращает набор слов, которые определяют тему, например, «болт», «шпилька» и «винт», если клиенты обсуждают оборудование. Для каждого из этих слов я нашел предложения в обзоре, в которых обсуждается только эта тема, а затем проанализировал их мнение. Это дает более четкий сигнал о том, что покупатель думает о конкретном аспекте продукта, и имеет больше информации, чем просто их общий рейтинг.

Для анализа настроений я использовал инструмент анализа настроений на основе лексики и правил VADER, который, как известно, хорошо работает для обзоров продуктов Amazon. Я считал значения ниже -0,5 отрицательными (), выше 0,5 - положительными (👍), а все промежуточные значения - нейтральными (😐).

Проверка

Создавая Gefilter Fish, я стремился создать продукт, который уменьшил бы количество тем по сравнению с функцией Amazon «Прочтите обзор, который упоминается». Однако, как проблема неконтролируемого обучения, нет ни основополагающей истины, с которой можно было бы сравнивать, ни показателя ошибок для проверки. Поэтому, чтобы проверить свою модель, мне пришлось проявить изобретательность, особенно в отсутствие A / B-тестирования.

Чтобы проверить свою модель, я измерил избыточность созданных мной тем и сравнил с текущей функцией Amazon. Я вычеркнул слова из функции Amazon Читать обзоры, которые упоминают для 400 продуктов, прежде чем Amazon начала проверять, робот ли я. Я использовал уравнение для относительной избыточности, как оно описано в теории информации.

Я объединил слова из тем из Gefilter Fish и измерил, насколько избыточным был этот список слов. Я проделал то же самое с функцией Amazon, а затем сравнил, насколько хорошо эти два подхода работают с разными продуктами.

В среднем Gefilter Fish сократила избыточность примерно на 18%! Функция Amazon была более избыточной, чем Gefilter Fish для большинства продуктов (55%; положительные значения на рисунке выше).

Случаи, когда Gefilter Fish работает хуже, чем Amazon (45%; отрицательные значения), можно объяснить тем фактом, что показатель избыточности в приведенном выше уравнении на самом деле является нижней границей того, насколько хорошо работает Gefilter Fish. Это связано с тем, что существуют другие источники избыточности, которые функция резервирования не учитывает.

Например, предположим, что есть две темы: «отлично работать» и «отличная цена». Чтобы использовать функцию избыточности, я сначала объединяю темы в одну строку: «слово отличная отличная цена». Вместо того, чтобы использовать слово «отличный» для описания двух различных аспектов продукта, теперь оно выглядит как избыточное слово и рассматривается как таковое функцией избыточности. Это не идеальный показатель, но он дает общее представление о том, насколько хорошо работает Gefilter Fish.

Заключение

Я создал Gefilter Fish как расширение Chrome для решения проблем, которые я заметил в текущей функции Amazon для обобщения тем в обзорах. Gefilter Fish сокращает количество тем более чем на 18% по сравнению с оригинальной функцией Amazon, а также обеспечивает быстрый обзор настроений клиентов.

Gefilter Fish - это то, что Amazon может легко развернуть вместо своей существующей функции. Это небольшое дополнение может значительно улучшить взаимодействие с пользователем, сократив время, затрачиваемое на просмотр обзоров!

Хотите перейти к карьере в области науки о данных? Узнайте больше о программе Insight Data Science Fellows Program в Сиэтле, Нью-Йорке и Кремниевой долине, подайте заявку сегодня или зарегистрируйтесь Для обновлений программы.