Перед тем, как начать свою карьеру в Data Science, я четыре года проработала в индустрии моды помощником стилиста. В это время я использовала Vogue.com для просмотра коллекций дизайнеров, чтобы выбрать изделия для фотосессий. Стилисты и креативные директора хотели бы, чтобы из-за специфической эстетики и тенденций, я просмотрел многие коллекции, в которых не было предметов в требуемом стиле, поскольку в настоящее время раздел Vogue Runway классифицируется только по сезонам, годам и дизайнерам.

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

Шаг 1. Соберите данные

Первым шагом этого проекта было очистить текст из каждой коллекции. Из-за быстрой деградации модных тенденций я решил собирать текст из всех коллекций с 2018 по весну 2020 года. Чтобы очистить сайт, я использовал автоматический веб-драйвер Selenium для нацеливания и очистки текста и размещения текст в файл JSON. Чтобы гарантировать, что в каждом документе есть текст (в некоторых коллекциях есть только изображения), я отфильтровал коллекции без текста по мере очистки. В итоге получился корпус из 3525 документов.

Шаг 2: Изучение Корпуса

После того, как весь текст был собран и организован с использованием уникальной комбинации имени дизайнера и коллекции в качестве идентификатора. Перед очисткой текста я создал набор слов и просмотрел большинство слов в корпусе, чтобы лучше понять, как достичь своей цели более высокой конкретности. Затем я создал облако слов. Вы можете видеть, что такие слова, как «дизайнер» и «коллекция», были очень распространены, но не очень помогли в моей цели по классификации коллекций.

Шаг 3. Очистка корпуса и предварительная обработка текста

Я создал список из 100 наиболее распространенных слов в корпусе после стоп-слов и добавил их к своим стоп-словам (предоставленным NLTK). Кроме того, я использовал знания предметной области, чтобы выбрать термины (очень общие) для удаления из корпуса, которые не помогли бы в моделировании более конкретных тем (тип коллекции, дизайнер, год и общие термины, такие как «взлетно-посадочная полоса», «дизайнер», «коллекция»). . Кроме того, я удалил номера.

Обновленный корпус лемматизировал с помощью НЛТК. Кроме того, я создал биграммные модели с минимальным числом 10 и преобразовал их в токены, чтобы они не были слишком уникальными, но и не слишком распространенными. Биграммы предназначены для включения сложных и более конкретных терминов. Затем я отфильтровал крайности (поскольку при попытке найти более конкретные нишевые слова токены должны появляться 10 раз и появляться не более чем в 10% документов).

Шаг 4: Создание модели LDA

Теперь, когда сбор и очистка данных отпали, я перешел к самой интересной части, создав свою модель LDA для извлечения тем из текстовых данных. Сначала я создал тестовую модель. Я решил начать с 5 тем, произвольное количество, чтобы увидеть первые результаты. Это дало мне оценку согласованности (с использованием меры c_v) 0,374. Я стремился улучшить этот показатель, создав график, показывающий, как показатели согласованности увеличиваются или уменьшаются по темам.

Я решил создать модель LDA, в которой первый локоть находится на 8 темах. Все, что было раньше, было бы слишком мало тем, а темы были бы очень общими. Все, что указано выше (например, в пике с 26 темами), определенно будет иметь много общего. Оценка согласованности по 8 темам составила 0,439. Также не было большого совпадения тем.

Шаг 5: Визуализация и понимание модели

С помощью Spacy я визуализировал окончательные модели взаимоотношений. Это первое изображение - карта межтопных расстояний. Это отличный способ увидеть, как темы связаны и насколько они пересекаются. Глядя на эту карту, я очень доволен тем, что темы достаточно уникальны.

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

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

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

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

В моде одно из самых распространенных коллабораций дизайнеров - кроссовки. В 2019 году Prada и Adidas работали над кроссовками и сумками, а в 2020 году Александр Ван сотрудничал с adidas над кроссовками, а Maison Margiela представила кроссовки с Reebok.

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

Изменяя этот проект, я хотел бы добавить больше коллекций, как прошлых, так и текущих. Я также хотел бы проанализировать и очистить текст, чтобы создать дополнительные стоп-слова, чтобы исключить имена дизайнеров и общие слова, не имеющие отношения к целям этой темы (например, «больше, чем» в теме 3 или «разговор о» в теме 5) . В конце концов, я буду проверять, насколько новое покрытие взлетно-посадочной полосы соответствует этим темам.

Дайте мне знать, если у вас есть какие-либо вопросы или комментарии по этому проекту. Вот ссылка на мой Github