Визуализация BERTopic

Вопрос или проблема

Я новичок в моделировании тем и пытаюсь использовать BERTopic в PyCharm. Мне трудно заставить любую визуализацию работать в PyCharm с BERTopic.

Вот мой текущий код:

import pickle
from umap import UMAP
from hdbscan import HDBSCAN
from bertopic import BERTopic
from sent2vec.vectorizer import Vectorizer
from sentence_transformers import SentenceTransformer
from sklearn.feature_extraction.text import CountVectorizer


# 6000 статей о криптовалютах
with open('all_articles', 'rb') as file_in:
    random_articles = pickle.load(file_in)

embedding_model = SentenceTransformer('all-MiniLM-L6-v2')
umap_model = UMAP(n_neighbors=3, 
                  n_components=3, 
                  min_dist=0.05)

hdbscan_model = HDBSCAN(min_cluster_size=80, 
                        min_samples=40,
                        gen_min_span_tree=True,
                        prediction_data=True)

vectorizer_model = CountVectorizer(ngram_range=(1, 2), 
                                   stop_words="english")

model = BERTopic(
    umap_model=umap_model,
    hdbscan_model=hdbscan_model,
    embedding_model=embedding_model,
    vectorizer_model=vectorizer_model,
    top_n_words=5,
    language="english",
    calculate_probabilities=True,
    verbose=True
)
topics, probs = model.fit_transform(random_articles)

# это ничего не производит
model.visualize_topics(top_n_topics=5)

Я нашел эту проблему с тем, что визуализация не работает в PyCharm с BERTopic. Эта проблема не помогла решить мой вопрос.

Как мне сделать так, чтобы что-то визуализировалось в PyCharm?

Вы пробовали заменить свою последнюю строку на следующую?

fig = model.visualize_topics(top_n_topics=5)
fig.show()

Ответ или решение

Для решения проблемы с визуализацией тем в библиотеке BERTopic внутри среды PyCharm, необходимо убедиться, что вы правильно вызываете функции визуализации и отображения графиков. Как вы уже заметили, код, который у вас есть, не приводит к выводу графика.

При визуализации тем в BERTopic используется библиотека Plotly, которая требует дополнительных шагов для правильного отображения графиков в некоторых средах, включая PyCharm. Попробуйте внести следующие изменения в ваш код:

  1. Замените строчку с вызовом model.visualize_topics(top_n_topics=5) на две команды:
    • Первая команда будет сохранять график в переменной.
    • Вторая команда будет вызывать отображение графика.

Ваш модифицированный код будет выглядеть так:

# Импорт необходимых библиотек
import pickle
from umap import UMAP
from hdbscan import HDBSCAN
from bertopic import BERTopic
from sentence_transformers import SentenceTransformer
from sklearn.feature_extraction.text import CountVectorizer

# Загрузка статей о криптовалютах
with open('all_articles', 'rb') as file_in:
    random_articles = pickle.load(file_in)

# Инициализация моделей
embedding_model = SentenceTransformer('all-MiniLM-L6-v2')
umap_model = UMAP(n_neighbors=3, n_components=3, min_dist=0.05)
hdbscan_model = HDBSCAN(min_cluster_size=80, min_samples=40, gen_min_span_tree=True, prediction_data=True)
vectorizer_model = CountVectorizer(ngram_range=(1, 2), stop_words="english")

# Создание модели BERTopic
model = BERTopic(
    umap_model=umap_model,
    hdbscan_model=hdbscan_model,
    embedding_model=embedding_model,
    vectorizer_model=vectorizer_model,
    top_n_words=5,
    language="english",
    calculate_probabilities=True,
    verbose=True
)

# Обучение модели
topics, probs = model.fit_transform(random_articles)

# Визуализация тем
fig = model.visualize_topics(top_n_topics=5)
fig.show()
  1. Важно также убедиться, что в вашей среде установлены все необходимые библиотеки для визуализации. Для этого выполните в вашем терминале следующие команды:
pip install plotly
  1. Если вы по-прежнему не видите графики, вы можете попробовать выполнить свои скрипты в Jupyter Notebook или Google Colab, так как они лучше поддерживают интерактивные визуализации.

С этими изменениями и проверками у вас должна получиться корректная визуализация тем, созданных с помощью BERTopic.

Оцените материал
Добавить комментарий

Капча загружается...