Spaces:
Runtime error
Runtime error
import gradio as gr | |
from bertopic import BERTopic | |
from datasets import load_dataset | |
from functools import lru_cache | |
def prep_dataset(): | |
dataset = load_dataset("OpenAssistant/oasst1", split="train") | |
assistant_ds = dataset.filter(lambda x: x["role"] == "assistant") | |
assistant_ds_en = assistant_ds.filter(lambda x: x["lang"] == "en") | |
return assistant_ds_en["text"] | |
topic_model = BERTopic.load("davanstrien/chat_topics") | |
fig = topic_model.visualize_topics() | |
def plot_docs(): | |
docs = prep_dataset() | |
return topic_model.visualize_documents(docs,sample=0.05) | |
def search_topic(text): | |
similar_topics, _ = topic_model.find_topics(text, top_n=5) | |
topic_info = topic_model.get_topic_info() | |
return topic_info[topic_info["Topic"].isin(similar_topics)] | |
def plot_topic_words(num_topics=9, n_words=5): | |
return topic_model.visualize_barchart(top_n_topics=num_topics, n_words=n_words) | |
with gr.Blocks() as demo: | |
with gr.Tab("Topic words"): | |
topic_number = gr.Slider( | |
minimum=3, maximum=20, value=9, step=1, label="Number of topics" | |
) | |
plot = gr.Plot(plot_topic_words()) | |
topic_number.change(plot_topic_words, [topic_number], plot) | |
with gr.Tab("Topic search"): | |
text = gr.Textbox(lines=1, label="Search text") | |
df = gr.DataFrame() | |
text.change(search_topic, [text], df) | |
with gr.Tab("Topic distribution"): | |
gr.Plot(fig) | |
with gr.Tab("Doc visualization"): | |
gr.Plot(plot_docs()) | |
demo.launch(debug=True) | |