Как начать свой первый проект по тематическому моделированию!
Так что недавно я прошел путь от нуля до героя с моим первым проектом по моделированию темы. Моя тематическая модель отнюдь не была идеальной. Но, эй, с самого начала, не имея представления о том, что моделирование темы вообще имело в виду, это определенно скромное достижение недели, хорошо?
Я подумал, что было бы замечательно объяснить, как я это сделал, вместе с несколькими советами и приемами, которые я усвоил на этом пути. Надеюсь, этот пост будет полезен для тех, кому нужна небольшая помощь, прежде чем приступить к своему первому проекту тематического моделирования. Итак, начнем!
Что такое тематическое моделирование?
Тематическое моделирование — это неконтролируемая модель, которая изучает набор основных тем (с точки зрения распределения слов) для набора документов и сходство каждого документа с этими темами. Не волнуйтесь, если это абсолютно ничего не значит для вас. Моя предыдущая запись в блоге здесь, чтобы помочь, поскольку я объяснил тематическое моделирование за 5 минут.
Но… если вам действительно лень читать, ничего страшного. Позвольте мне резюмировать это для вас! С моей точки зрения непрофессионала, когда мы не уверены, что ищем, тематическое моделирование может помочь сжать длинные куски текста в краткие слова, чтобы понять основные идеи . Это быстрый и простой способ ответить на вопрос «О чем говорят люди?» из романа, твита, электронного письма или случайного абзаца текста.
Итак, как вы выполняете тематическое моделирование?
На диаграмме ниже показан краткий обзор шагов, которые я предпринял для моделирования темы, чтобы понять содержание твитов для 6 основных авиакомпаний США. Блокнот и код можно найти в мой GitHub.
Мои 3 главных совета по тематическому моделированию
1-й совет: как определить наиболее подходящее/оптимальное количество тем для модели LDA
Поскольку ученые и исследователи все еще находятся в поиске наилучшего подхода к определению оптимального количества тем для модели LDA, я не могу назвать вам точное число. Тем не менее, наиболее распространенный и простой метод — попробовать различное количество тем и выбрать то, которое дает вам наивысшее значение согласованности. Вы можете проверить, как я это сделал в моем репозитории.
Имейте в виду, что цель тематического моделирования состоит в том, чтобы получить общее представление о том, о чем говорят люди. Если предположить, что мы анализируем текст, относящийся к определенной отрасли или бизнесу, наличие тысяч тем может сильно затруднить наше понимание. Поэтому я искренне верю, что меньше значит больше.
2-й совет: как интерпретировать диаграмму pyLDAvis
Приведенные выше диаграммы pyLDAvis помогают нам ответить на 3 основных вопроса о нашей тематической модели.
1. Насколько распространена каждая тема?
Глядя на диаграмму слева (т. е. на карту расстояний между темами), каждый кружок представляет одну тему, а размер кружка представляет распространенность. Каждый пузырь также пронумерован от 1 до 40 в порядке убывания распространенности. Например, тема 1 чаще всего упоминается во всех твитах о 6 авиакомпаниях.
2. Как темы связаны друг с другом?
Давайте еще раз посмотрим на график слева. Чем ближе пузыри, тем более тесно связаны темы. Например, темы 1 и 4 тесно связаны друг с другом из-за перекрывающихся слов.
3. Что означает каждая тема?
На этот раз мы сосредоточимся на графике справа. Если мы выберем тему слева, диаграмма справа покажет нам наиболее полезные слова, чтобы понять, о чем эта тема. Например, тема 1 может быть истолкована как «отмена рейса», тогда как тема 2 может быть связана с «изменением бронирования».
3-й совет: как оценить вашу модель LDA (как узнать, достаточно ли хороша ваша модель?)
Когда я работал над этим проектом, я знал, что идеальной модели просто не существует. Тем не менее, я обнаружил, что задаюсь вопросом, достаточно ли хороша моя модель, и это заставило меня искать различные показатели для оценки модели LDA. И я наткнулся на эту статью, в которой предлагается подробный подход к оценке тематических моделей.
Однако есть более простые способы оценить вашу модель LDA, не слишком увлекаясь математикой и алгоритмами. Но принимайте мои предложения с щепоткой соли, потому что это ярлыки.
Метод 1. Проверьте распределение кружков на диаграммах pyLDA.
Чем больше непересекающихся и разбросанных пузырьков, тем лучше модель. Если вы обнаружили, что у вас много крошечных маленьких пузырьков, перекрывающихся и концентрирующихся на одном сайте, это означает, что ваши темы не настолько четкие и их легко расшифровать, что происходит. Возможно, это хорошая подсказка, чтобы просмотреть количество тем или другие параметры модели LDA.
Метод 2. Попытка создать статью на тему с родственными ключевыми словами
Я предполагаю, что у вас есть приличные знания о контексте и наборе данных, прежде чем переходить к тематическому моделированию. (А если вы этого не сделаете, пожалуйста, осторожно напомните, чтобы вы проявили должную осмотрительность, поскольку контекст означает все для анализа данных.) Один из способов проверить модель — выбрать тему и прочитать вслух эти ключевые слова. Как только вы начнете читать вслух, в голове должна сложиться разумная история, соответствующая контексту. Например, путешественники жалуются на задержки рейсов. Но если после изучения многих тем истории не имеют смысла, возможно, вашей модели нужно чуть больше нежной любви и заботы.
По общему признанию, моя первая попытка с тематическим моделированием ни в коем случае не является идиллической, особенно когда я сталкиваюсь с техническими жаргонами и бесчисленными сообщениями об ошибках. Но завоевание новой концепции всегда было очень полезным для меня лично. А что может не нравиться, когда в моем наборе инструментов есть еще один инструмент? Поэтому, если вы чувствуете, что застряли на чем-то, над чем работаете, не сдавайтесь. Солдат, и ты удивишь себя.
А пока всем отличных выходных!
Первоначально опубликовано на http://thedigitalskye.com 7 ноября 2020 г.