Вопрос или проблема
Я новичок в моделировании тем
и пытаюсь использовать 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. Попробуйте внести следующие изменения в ваш код:
- Замените строчку с вызовом
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()
- Важно также убедиться, что в вашей среде установлены все необходимые библиотеки для визуализации. Для этого выполните в вашем терминале следующие команды:
pip install plotly
- Если вы по-прежнему не видите графики, вы можете попробовать выполнить свои скрипты в Jupyter Notebook или Google Colab, так как они лучше поддерживают интерактивные визуализации.
С этими изменениями и проверками у вас должна получиться корректная визуализация тем, созданных с помощью BERTopic.