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

pip install pyldavis

Импорт необходимых библиотек

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

from __future__ import print_function
import pyLDAvis
import pyLDAvis.sklearn
pyLDAvis.enable_notebook()
from sklearn.datasets import fetch_20newsgroups
from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer
from sklearn.decomposition import LatentDirichletAllocation

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

Загрузка набора данных

Теперь загрузим уже импортированный набор данных. Группа новостей представляет собой текстовый набор данных, поэтому он будет полезен для этой статьи и понимания формирования кластера с помощью LDA.

newsgroups = fetch_20newsgroups(remove=('headers', 'footers', 'quotes'))
docs_raw = newsgroups.data
print(len(docs_raw))

Здесь мы увидим, что набор данных содержит 11314 строк данных. Затем мы применим CountVectorizer, TFID и т. Д. И создадим модель, которую будем визуализировать.

Предварительная обработка данных

tf_vectorizer = CountVectorizer(strip_accents = 'unicode',
                                stop_words = 'english',
                                lowercase = True,
                                token_pattern = r'\b[a-zA-Z]{3,}\b',
                                max_df = 0.5, 
                                min_df = 10)
dtm_tf = tf_vectorizer.fit_transform(docs_raw)
tfidf_vectorizer = TfidfVectorizer(**tf_vectorizer.get_params())
dtm_tfidf = tfidf_vectorizer.fit_transform(docs_raw)

Создание модели

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

# for TF DTM
lda_tf = LatentDirichletAllocation(n_components=20, random_state=0)
lda_tf.fit(dtm_tf)
# for TFIDF DTM
lda_tfidf = LatentDirichletAllocation(n_components=20, random_state=0)
lda_tfidf.fit(dtm_tfidf)

Создание визуализации

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

pyLDAvis.sklearn.prepare(lda_tf, dtm_tf, tf_vectorizer)

Посмотрите видео ниже, показывающее, как pyLDAvis создает интерактивную и визуально привлекательную визуализацию.

Точно так же вы также можете создавать визуализации для векторизатора TF-IDF и т. Д. Попробуйте это и дайте мне знать свои комментарии или любые трудности, с которыми вы столкнетесь, в разделе комментариев.

Эта запись написана в сотрудничестве с Пиюшем Ингале.

Прежде чем ты уйдешь

Спасибо за чтение! Если вы хотите связаться со мной, свяжитесь со мной по адресу [email protected] или в моем профиле LinkedIn. Вы можете просмотреть мой профиль Github для различных проектов по науке о данных и руководств по пакетам. Кроме того, не стесняйтесь изучать мой профиль и читать разные мои статьи, связанные с наукой о данных.