Я подумал, что выскажу одну или две вещи о своем опыте, моделируя отзывы клиентов с Flipkart. Применение тематического моделирования можно найти во многих областях. По своей сути, это действительно полезно для поиска основных тем, обсуждаемых в документе (тексте). Одно из его приложений - получение информации о продуктах от клиентов или пользователей. Выполнение этого вручную с помощью платформ электронной коммерции с огромной базой пользователей и миллионами отзывов на все продукты требует много времени и человеческих ресурсов. Тематическое моделирование помогает нам решить эту проблему, передавая суть каждого документа / обзора.

все модели неверны, но некоторые полезны

Когда данных меньше, методы машинного обучения дают более надежные результаты, чем глубокое обучение. Я выполнил эту задачу, используя LDA - Скрытое распределение Дирихле и NMF - Факторизация неотрицательной матрицы. LDA - это генеративная вероятностная модель, тогда как NMF - метод матричной факторизации. Узнайте больше о LDA, которое оказалось для меня прекрасным ресурсом, здесь. Вместо использования общедоступных наборов данных рекомендуется получать данные непосредственно с веб-сайтов, используя некоторые инструменты удаления с открытым исходным кодом. Я удалил данные для Redmi K20 Pro (Flame Red, 128 ГБ) с Flipkart.

Некоторые из шагов, которые выполнялись при работе с этим проектом: Сбор данных, EDA, предварительная обработка данных, Моделирование, Анализ результатов. Среди них более важны предварительная обработка данных и анализ результатов. Чем лучше предварительная обработка, тем лучше результаты и больше согласованности с полученными темами. В конце вы получите набор слов, и вам решать, как резюмировать тему из этих слов. Необязательно, чтобы все слова соответствовали определенной теме. Совершенно нормально, когда два человека полностью расходятся во мнениях по полученной теме.

Данные содержат около 7 тыс. точек данных. Как упоминалось ранее, я отказался от данных, используя модули bs4 и selenium (python). Настоятельно рекомендуется не создавать чрезмерных посещений на сайте. При извлечении данных очень важно соблюдать закономерности в источнике страницы, это облегчает работу. Посмотрите фрагмент кода здесь

EDA - это проверка основных данных всех столбцов данных. Исследовательский анализ данных даст вам общее представление о функциях, на которые вы можете положиться, исправит пробелы в данных (если таковые имеются) и т. Д. Здесь мы выполняем все основные проверки работоспособности. Когда я просмотрел обзоры и создал из них облако слов, я получил следующее. Мы можем наблюдать из облака слов слова, которые чаще всего обсуждаются, такие как камера, дисплей, соотношение цены и качества и т. Д. в продукте . Следует помнить, что облако слов получается до удаления шума из текстовых данных. Проверьте код по этой ссылке для EDA.

Для предварительной обработки данных использовались такие модули, как NLTK для pos_taging (получение частей речи), re для очистки шаблоны слов и смайлик для работы со смайликами, так как отзывы также содержат смайлы и смайлики. Токенизация данных путем удаления специальных символов, слов длиной меньше двух, смайликов / эмодзи и стоп-слов. Язык чата - я не мог разобраться с- (awesome, awesom, osm), (just and jus), (superrrr, superb, supa) и т. Д. - его решение определенно улучшило бы результаты. Составление словаря таких слов, как я имел дело со смайликами, и регулярное обновление может быть основным решением проблем.

BoW и TfIdf (матрицы терминов документов) - мои входные данные для данных. Первоначально я предоставил все слова в обзорах в качестве входных данных, а затем улучшил результаты, взяв слова, часть речи которых является либо существительным, либо прилагательным, и, наконец, предоставил в качестве входных данных только существительные. .

В разделах Моделирование и Анализ результатов я пробовал разные варианты, чтобы добиться лучших результатов. Поскольку данные более практичны, метрики не пригодятся. Результат зависит от того, как заинтересованный инженер пробует разные вещи. Я пробовал использовать биграммы и триграммы, LDA из sklearn и gensim, NMF из sklearn. Количество тем - это переменная величина, и алгоритм ожидает, что мы ее предоставим.

«Tfidf + NMF + sklearn» и «BOW + LDA + gensim» дали лучшие результаты

Рисунок выше - результат NMF на tfidf. Я варьировал количество тем и при n = 5 обнаружил, что полученные темы немного понятны. За исключением темы 1, остальные четыре темы немного ясны в изложении основной темы.

Тема0- соотношение цены и качества,

Тема2- ценовой диапазон,

Тема3- перформанс,

Topic4-flipkart и его сервис.

При дальнейшем копании темы 1 (т.е. применении NMF к обзорам темы 1, и можно попробовать любые альтернативные способы выяснить), следующие две темы получили дальнейшее развитие. Принимая во внимание нижеприведенные темы на рисунке,

Тема1-камера

Тема5-аккумулятор

Коды для соответствующих задач можно получить здесь: sklearn, gensim

Заключение

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

В дальнейшем это можно продвинуть вперед, предоставив оценку каждой из тем на основе обзоров, то есть, положительный или отрицательный отзыв о лежащей в основе теме.