import os
from bertopic import BERTopic
from bertopic.representation import LiteLLM
# Create a custom prompt for title and summary
summary_prompt = """
I have a topic that contains the following documents:
[DOCUMENTS]
The topic is described by the following keywords: [KEYWORDS]
Based on the above information, please provide a two-sentence summary of the main points
Format your response as:
summary: <two sentences>
"""
title_prompt = """
I have a topic that contains the following documents:
[DOCUMENTS]
The topic is described by the following keywords: [KEYWORDS]
Based on the above information, please provide a concise title for this topic
Format your response as:
title: <title>
"""
# Create your representation model with the custom prompt
representation_model = {"title": LiteLLM(
model="gpt-4o-mini",
prompt=title_prompt
), "summary": LiteLLM(
model="gpt-4o-mini",
prompt=summary_prompt
)}
# Create our BERTopic model
topic_model = BERTopic(representation_model=representation_model, verbose=True)
import os
from bertopic import BERTopic
from bertopic.representation import LiteLLM
# Create a custom prompt for title and summary
summary_prompt = """
I have a topic that contains the following documents:
[DOCUMENTS]
The topic is described by the following keywords: [KEYWORDS]
Based on the above information, please provide a two-sentence summary of the main points
Format your response as:
summary:
"""
title_prompt = """
I have a topic that contains the following documents:
[DOCUMENTS]
The topic is described by the following keywords: [KEYWORDS]
Based on the above information, please provide a concise title for this topic
Format your response as:
title:
"""
# Create your representation model with the custom prompt
representation_model = {"title": LiteLLM(
model="gpt-4o-mini",
prompt=title_prompt
), "summary": LiteLLM(
model="gpt-4o-mini",
prompt=summary_prompt
)}
# Create our BERTopic model
topic_model = BERTopic(representation_model=representation_model, verbose=True)</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h2 id="fit-bertopic-and-explore-topics">💬 Fit BERTopic and Explore Topics<a class="anchor-link" href="#fit-bertopic-and-explore-topics">¶</a></h2><p>Now let’s apply BERTopic to our dataset.</p>
<h3 id="how-it-works">🧩 How it Works:<a class="anchor-link" href="#how-it-works">¶</a></h3><ol>
<li><p><strong>Embeddings</strong>:</p>
<ul>
<li>BERTopic uses a pre-trained model (<code>all-MiniLM-L6-v2</code>) to generate vector representations of each document.</li>
<li>This model was fine-tuned on sentence similarity tasks, so it’s well-suited to group semantically similar texts.</li>
</ul>
</li>
<li><p><strong>Dimensionality Reduction</strong>:</p>
<ul>
<li>UMAP reduces the high-dimensional embeddings to 5-20 dimensions for easier clustering.</li>
</ul>
</li>
<li><p><strong>Clustering</strong>:</p>
<ul>
<li>HDBSCAN identifies clusters in the reduced space — each representing a distinct topic.</li>
</ul>
</li>
<li><p><strong>Topic Representation</strong>:</p>
<ul>
<li>We use GPT (via LiteLLM) to summarize each topic based on its most representative texts and keywords.</li>
</ul>
</li>
</ol>
<p>This means we can cluster news articles and automatically generate titles and summaries for each topic. Let’s go!</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [3]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-3", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="c1"># Extract the texts (BBC news headlines) from the dataset</span>
<span class="n">texts</span> <span class="o">=</span> <span class="n">df</span><span class="o">.</span><span class="n">document</span><span class="o">.</span><span class="n">tolist</span><span class="p">()</span>
<span class="c1"># Fit the BERTopic model on the texts</span>
<span class="n">topics</span><span class="p">,</span> <span class="n">probs</span> <span class="o">=</span> <span class="n">topic_model</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">texts</span><span class="p">)</span>
</pre></div>
<div id="cell-3" class="clipboard-copy-txt"># Extract the texts (BBC news headlines) from the dataset
texts = df.document.tolist()
# Fit the BERTopic model on the texts
topics, probs = topic_model.fit_transform(texts)</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
<pre>2025-05-12 15:07:07,574 - BERTopic - Embedding - Transforming documents to embeddings.
</pre>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output " data-mime-type="text/plain">
<pre>Batches: 0%| | 0/70 [00:00<?, ?it/s]</pre>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
<pre>2025-05-12 15:07:29,486 - BERTopic - Embedding - Completed ✓
2025-05-12 15:07:29,486 - BERTopic - Dimensionality - Fitting the dimensionality reduction algorithm
2025-05-12 15:07:36,494 - BERTopic - Dimensionality - Completed ✓
2025-05-12 15:07:36,495 - BERTopic - Cluster - Start clustering the reduced embeddings
2025-05-12 15:07:36,529 - BERTopic - Cluster - Completed ✓
2025-05-12 15:07:36,531 - BERTopic - Representation - Fine-tuning topics using representation models.
2025-05-12 15:11:09,392 - BERTopic - Representation - Completed ✓
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h2 id="visualize-topic-clusters-with-llm-generated-titles">📊 Visualize Topic Clusters with LLM-Generated Titles<a class="anchor-link" href="#visualize-topic-clusters-with-llm-generated-titles">¶</a></h2><p>After fitting our BERTopic model on the corpus, the next step is to explore the <strong>semantic structure</strong> of our dataset by visualizing:</p>
<ul>
<li>How topics are distributed across the corpus.</li>
<li>What each cluster likely represents (based on LLM-generated <strong>titles</strong> and <strong>summaries</strong>).</li>
<li>How topics are related or nested hierarchically.</li>
</ul>
<hr />
<h3 id="why-custom-titles">🎯 Why Custom Titles?<a class="anchor-link" href="#why-custom-titles">¶</a></h3><p>By default, BERTopic assigns a list of top keywords to represent each topic.<br />
But this can be hard to interpret at a glance.</p>
<p>We’ve used <strong>GPT-4o via LiteLLM</strong> to generate:</p>
<ul>
<li>A clear <strong>title</strong> summarizing what the topic is about.</li>
<li>A brief <strong>summary</strong> of the documents within it.</li>
</ul>
<p>We now <strong>inject these titles</strong> into BERTopic using <code>set_topic_labels()</code> to replace raw keywords with human-readable, descriptive topic names in all visualizations.</p>
<hr />
<h3 id="visualizations-provided-by-bertopic">🖼️ Visualizations Provided by BERTopic:<a class="anchor-link" href="#visualizations-provided-by-bertopic">¶</a></h3><ol>
<li><p><strong><code>visualize_topics()</code></strong>:</p>
<ul>
<li>A 2D interactive scatter plot (via UMAP).</li>
<li>Each circle represents a topic; size = number of documents.</li>
<li>Hovering shows the topic <strong>title</strong> and top keywords.</li>
<li>Great for understanding the overall distribution of themes.</li>
</ul>
</li>
<li><p><strong><code>visualize_hierarchy()</code></strong>:</p>
<ul>
<li>Displays a <strong>tree diagram</strong> showing how topics relate to each other.</li>
<li>Useful to spot <strong>nested structures</strong>, <strong>overlapping themes</strong>, or <strong>potential subclusters</strong>.</li>
</ul>
</li>
</ol>
<hr />
<h3 id="how-it-works-under-the-hood">🛠️ How It Works (Under the Hood):<a class="anchor-link" href="#how-it-works-under-the-hood">¶</a></h3><ul>
<li><strong>Step 1</strong>: We extract topic titles using <code>topic_model.get_topic_info()</code>.</li>
<li><strong>Step 2</strong>: We format them (clean up “title: <...>” syntax).</li>
<li><strong>Step 3</strong>: We pass these titles into <code>custom_labels</code> and feed that into the visualizers.</li>
</ul>
<p>These interactive plots are excellent tools for <strong>exploration</strong>, <strong>storytelling</strong>, and <strong>decision-making</strong> based on topic structure.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [18]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-4", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="c1"># Get the custom titles generated by LiteLLM</span>
<span class="n">titles</span> <span class="o">=</span> <span class="n">topic_model</span><span class="o">.</span><span class="n">get_topic_info</span><span class="p">()</span>
<span class="c1"># Build a mapping from topic number to LLM title</span>
<span class="n">custom_labels</span> <span class="o">=</span> <span class="p">{</span>
<span class="n">row</span><span class="p">[</span><span class="s2">"Topic"</span><span class="p">]:</span> <span class="n">row</span><span class="p">[</span><span class="s2">"title"</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">":"</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">for</span> <span class="n">_</span><span class="p">,</span> <span class="n">row</span> <span class="ow">in</span> <span class="n">titles</span><span class="o">.</span><span class="n">iterrows</span><span class="p">()</span>
<span class="k">if</span> <span class="n">row</span><span class="p">[</span><span class="s2">"Topic"</span><span class="p">]</span> <span class="o">!=</span> <span class="o">-</span><span class="mi">1</span> <span class="c1"># exclude outliers</span>
<span class="p">}</span>
<span class="n">topic_model</span><span class="o">.</span><span class="n">set_topic_labels</span><span class="p">(</span><span class="n">custom_labels</span><span class="p">)</span>
<span class="n">topic_model</span><span class="o">.</span><span class="n">visualize_topics</span><span class="p">(</span><span class="n">custom_labels</span><span class="o">=</span><span class="n">custom_labels</span><span class="p">)</span>
</pre></div>
<div id="cell-4" class="clipboard-copy-txt"># Get the custom titles generated by LiteLLM
titles = topic_model.get_topic_info()
# Build a mapping from topic number to LLM title
custom_labels = {
row["Topic"]: row["title"][0].split(":")[1].strip() for _, row in titles.iterrows()
if row["Topic"] != -1 # exclude outliers
}
topic_model.set_topic_labels(custom_labels)
topic_model.visualize_topics(custom_labels=custom_labels)</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [19]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-5", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="n">hierarchical_topics</span> <span class="o">=</span> <span class="n">topic_model</span><span class="o">.</span><span class="n">hierarchical_topics</span><span class="p">(</span><span class="n">texts</span><span class="p">)</span>
<span class="n">topic_model</span><span class="o">.</span><span class="n">visualize_hierarchy</span><span class="p">(</span><span class="n">hierarchical_topics</span><span class="o">=</span><span class="n">hierarchical_topics</span><span class="p">,</span> <span class="n">custom_labels</span><span class="o">=</span><span class="n">custom_labels</span><span class="p">)</span>
</pre></div>
<div id="cell-5" class="clipboard-copy-txt">hierarchical_topics = topic_model.hierarchical_topics(texts)
topic_model.visualize_hierarchy(hierarchical_topics=hierarchical_topics, custom_labels=custom_labels)</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="application/vnd.jupyter.stderr">
<pre>100%|██████████| 39/39 [00:00<00:00, 543.00it/s]
</pre>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h2 id="topic-summary-table-exploration">📋 Topic Summary Table & Exploration<a class="anchor-link" href="#topic-summary-table-exploration">¶</a></h2><p>Let’s now inspect what each topic is about.</p>
<h3 id="what-well-do">🔍 What We’ll Do:<a class="anchor-link" href="#what-well-do">¶</a></h3><ul>
<li>Print a concise <strong>summary of all topics</strong>.</li>
<li>Show the <strong>top words</strong> per topic.</li>
<li>Display the <strong>LLM-generated labels or summaries</strong>.</li>
<li>Use a utility function to <strong>explore each topic</strong> interactively.</li>
</ul>
<p>This helps us understand what themes dominate our dataset — and where we might want to dive deeper.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [6]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-6", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="c1"># View the top 10 topics with their representative terms and labels</span>
<span class="n">topic_info</span> <span class="o">=</span> <span class="n">topic_model</span><span class="o">.</span><span class="n">get_topic_info</span><span class="p">()</span>
<span class="n">topic_info</span><span class="o">.</span><span class="n">head</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
</pre></div>
<div id="cell-6" class="clipboard-copy-txt"># View the top 10 topics with their representative terms and labels
topic_info = topic_model.get_topic_info()
topic_info.head(10)</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child jp-OutputArea-executeResult">
<div class="jp-OutputPrompt jp-OutputArea-prompt">Out[6]:</div>
<div class="jp-RenderedHTMLCommon jp-RenderedHTML jp-OutputArea-output jp-OutputArea-executeResult" data-mime-type="text/html">
<div>
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
<table border="1" class="dataframe">
<thead>
<tr style="text-align: right;">
<th></th>
<th>Topic</th>
<th>Count</th>
<th>Name</th>
<th>Representation</th>
<th>title</th>
<th>summary</th>
<th>Representative_Docs</th>
</tr>
</thead>
<tbody>
<tr>
<th>0</th>
<td>-1</td>
<td>478</td>
<td>-1_the_to_of_and</td>
<td>[the, to, of, and, in, said, that, it, is, for]</td>
<td>[title: Political Landscapes: Reforms, Electio...</td>
<td>[summary: Labour plans to pursue further refor...</td>
<td>[fresh hope after argentine crisis three years...</td>
</tr>
<tr>
<th>1</th>
<td>0</td>
<td>186</td>
<td>0_he_we_the_to</td>
<td>[he, we, the, to, club, but, and, chelsea, his...</td>
<td>[title: Gerrard's Future Amid Chelsea Interest...</td>
<td>[summary: Liverpool's chief executive Rick Par...</td>
<td>[mourinho plots impressive course chelsea s wi...</td>
</tr>
<tr>
<th>2</th>
<td>1</td>
<td>168</td>
<td>1_film_the_best_in</td>
<td>[film, the, best, in, and, of, for, actor, fil...</td>
<td>[title: Oscar and BAFTA Highlights: Celebratin...</td>
<td>[summary: The film "Vera Drake" is gaining rec...</td>
<td>[bafta to hand out movie honours movie stars f...</td>
</tr>
<tr>
<th>3</th>
<td>2</td>
<td>147</td>
<td>2_england_wales_ireland_the</td>
<td>[england, wales, ireland, the, rugby, and, in,...</td>
<td>[title: Rugby Rivalries: England, Ireland, and...</td>
<td>[summary: The recent events in rugby highlight...</td>
<td>[o gara revels in ireland victory ireland fly-...</td>
</tr>
<tr>
<th>4</th>
<td>3</td>
<td>129</td>
<td>3_music_band_the_album</td>
<td>[music, band, the, album, and, in, of, song, t...</td>
<td>[title: Celebrating Music Legends and Awards]</td>
<td>[summary: The music industry recently celebrat...</td>
<td>[brits debate over urban music joss stone a...</td>
</tr>
<tr>
<th>5</th>
<td>4</td>
<td>86</td>
<td>4_that_to_security_the</td>
<td>[that, to, security, the, of, and, virus, spam...</td>
<td>[title: Trends in Cybersecurity: Rising Threat...</td>
<td>[summary: The increasing concern over cybersec...</td>
<td>[rings of steel combat net attacks gambling is...</td>
</tr>
<tr>
<th>6</th>
<td>5</td>
<td>86</td>
<td>5_roddick_open_in_the</td>
<td>[roddick, open, in, the, seed, to, was, austra...</td>
<td>[title: Australian Open 2023: Highlights and K...</td>
<td>[summary: The documents highlight the performa...</td>
<td>[davenport dismantles young rival top seed lin...</td>
</tr>
<tr>
<th>7</th>
<td>6</td>
<td>64</td>
<td>6_the_to_of_said</td>
<td>[the, to, of, said, be, he, police, and, in, t...</td>
<td>[title: House Arrest for Terror Suspects: Gove...</td>
<td>[summary: The UK government is facing signific...</td>
<td>[terror suspects face house arrest uk citizens...</td>
</tr>
<tr>
<th>8</th>
<td>7</td>
<td>63</td>
<td>7_mr_labour_blair_he</td>
<td>[mr, labour, blair, he, election, brown, the, ...</td>
<td>[title: Tensions Between Blair and Brown Amid ...</td>
<td>[summary: Tensions between Tony Blair and Gord...</td>
<td>[blair and brown criticised by mps labour mps ...</td>
</tr>
<tr>
<th>9</th>
<td>8</td>
<td>59</td>
<td>8_broadband_bt_to_net</td>
<td>[broadband, bt, to, net, the, of, and, is, tv,...</td>
<td>[title: The Rise of Broadband in the UK: Growt...</td>
<td>[summary: The popularity of broadband in the U...</td>
<td>[broadband in the uk growing fast high-speed n...</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [7]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-7", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">textwrap</span>
<span class="c1"># Show the summary representation of each topic</span>
<span class="k">for</span> <span class="n">topic_id</span> <span class="ow">in</span> <span class="n">topic_info</span><span class="p">[</span><span class="s1">'Topic'</span><span class="p">]</span><span class="o">.</span><span class="n">unique</span><span class="p">():</span>
<span class="k">if</span> <span class="n">topic_id</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
<span class="k">continue</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="se">\n</span><span class="s2">📌 Topic </span><span class="si">{</span><span class="n">topic_id</span><span class="si">}</span><span class="s2">:"</span><span class="p">)</span>
<span class="n">title</span> <span class="o">=</span> <span class="n">topic_model</span><span class="o">.</span><span class="n">get_topic_info</span><span class="p">(</span><span class="n">topic_id</span><span class="p">)[</span><span class="s1">'title'</span><span class="p">]</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">":"</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="n">summary</span> <span class="o">=</span> <span class="n">topic_model</span><span class="o">.</span><span class="n">get_topic_info</span><span class="p">(</span><span class="n">topic_id</span><span class="p">)[</span><span class="s1">'summary'</span><span class="p">]</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">":"</span><span class="p">)[</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Title:"</span><span class="p">,</span> <span class="n">title</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"Summary:"</span><span class="p">)</span>
<span class="c1"># Wrap the text to 80 characters</span>
<span class="n">wrapped_summary</span> <span class="o">=</span> <span class="n">textwrap</span><span class="o">.</span><span class="n">fill</span><span class="p">(</span><span class="n">summary</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">80</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">wrapped_summary</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'-'</span> <span class="o">*</span> <span class="mi">80</span><span class="p">)</span> <span class="c1"># Shorter separator line</span>
</pre></div>
<div id="cell-7" class="clipboard-copy-txt">import textwrap
# Show the summary representation of each topic
for topic_id in topic_info['Topic'].unique():
if topic_id == -1:
continue
print(f"\n📌 Topic {topic_id}:")
title = topic_model.get_topic_info(topic_id)['title'].values[0][0].split(":")[1].strip()
summary = topic_model.get_topic_info(topic_id)['summary'].values[0][0].split(":")[1].strip()
print("Title:", title)
print("Summary:")
# Wrap the text to 80 characters
wrapped_summary = textwrap.fill(summary, width=80)
print(wrapped_summary)
print('-' * 80) # Shorter separator line</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>
📌 Topic 0:
Title: Gerrard's Future Amid Chelsea Interest and Liverpool's Commitment
Summary:
Liverpool's chief executive Rick Parry has vowed that the club will not sell
star player Steven Gerrard, despite ongoing interest from Chelsea. Gerrard is
committed to winning trophies with Liverpool, while Parry acknowledges that
ultimately, the decision regarding his future rests with Gerrard himself.
--------------------------------------------------------------------------------
📌 Topic 1:
Title: Oscar and BAFTA Highlights
Summary:
The film "Vera Drake" is gaining recognition with three Academy Award
nominations, including Best Actress for Imelda Staunton, while Clint Eastwood's
"Million Dollar Baby" won top honors at the Oscars, edging out Martin Scorsese's
"The Aviator." At the 2005 BAFTA Film Awards, both "The Aviator" and "Vera
Drake" received significant accolades, with "The Aviator" being named Best Film.
--------------------------------------------------------------------------------
📌 Topic 2:
Title: Rugby Rivalries
Summary:
The recent events in rugby highlight the shifting landscape of Northern
Hemisphere rugby, with Ireland achieving a significant victory over England that
keeps their Grand Slam hopes alive. As the Six Nations tournament progresses,
Wales and Ireland emerge as strong contenders, challenging the dominance of
traditional powerhouses like France and England.
--------------------------------------------------------------------------------
📌 Topic 3:
Title: Celebrating Music Legends and Awards
Summary:
The music industry recently celebrated notable events, including posthumous
Grammy awards for Ray Charles and U2's ongoing success in maintaining their
status as a leading rock band. The Brit Awards saw Scissor Sisters take home
three international category prizes, while Joss Stone's win as best British
urban act sparked discussions about the definition of urban music.
--------------------------------------------------------------------------------
📌 Topic 4:
Title: Trends in Cybersecurity
Summary:
The increasing concern over cybersecurity has led to more women and older
individuals taking proactive measures to protect their home computers from
various online threats such as viruses and malware. As cyber crime escalates,
particularly targeting online gambling sites, the number of known viruses and
phishing attempts continues to grow significantly, underscoring the urgent need
for enhanced security measures.
--------------------------------------------------------------------------------
📌 Topic 5:
Title: Australian Open 2023
Summary:
The documents highlight the performances of several prominent tennis players
during the Australian Open, with Marat Safin expressing doubts about his future
at Wimbledon and Lindsay Davenport advancing confidently in the tournament.
Additionally, the pieces discuss Roger Federer's remarkable achievement of
winning three Grand Slams in a season and Tim Henman's upcoming match against
Cyril Saulnier in the first round of the Australian Open.
--------------------------------------------------------------------------------
📌 Topic 6:
Title: House Arrest for Terror Suspects
Summary:
The UK government is facing significant opposition to its plans to impose house
arrest on terrorism suspects, with various political parties, including the
Conservatives and Liberal Democrats, expressing serious concerns. Critics argue
that these control orders could undermine legal rights and represent a form of
tyranny, especially since such measures would be applied without trial due to
insufficient evidence.
--------------------------------------------------------------------------------
📌 Topic 7:
Title: Tensions Between Blair and Brown Amid Labour Unity Concerns
Summary:
Tensions between Tony Blair and Gordon Brown are highlighted as both politicians
face criticism from Labour MPs regarding a perceived rift, with Blair dismissing
reports of plans to resign before the next general election. In the midst of
these challenges, both leaders are making appeals for unity within the party to
secure a successful campaign for a third term in power.
--------------------------------------------------------------------------------
📌 Topic 8:
Title: The Rise of Broadband in the UK
Summary:
The popularity of broadband in the UK is increasing rapidly, with BT reporting a
significant rise in new connections, marking a record quarter. Additionally, BT
is expanding its services by venturing into television content distribution over
broadband, indicating a shift towards a more integrated digital media
experience.
--------------------------------------------------------------------------------
📌 Topic 9:
Title: Highlights of Recent British Television Shows and Awards
Summary:
Germaine Greer criticized the bullying tactics in Celebrity Big Brother after
leaving the show, highlighting concerns about the psychological impact on
participants. Meanwhile, the BBC's Little Britain won accolades at the British
Comedy Awards, while ITV's I'm a Celebrity experienced a significant drop in
viewership for its finale compared to previous seasons.
--------------------------------------------------------------------------------
📌 Topic 10:
Title: London Stock Exchange Takeover Talks
Summary:
The London Stock Exchange (LSE) is currently the focus of potential takeover
bids, with Deutsche Boerse reportedly planning to increase its offer to £1.5
billion and Euronext having held discussions to possibly launch a cash bid.
Meetings between LSE executives and both Deutsche Boerse and Euronext have
indicated ongoing interest in acquiring the exchange.
--------------------------------------------------------------------------------
📌 Topic 11:
Title: Worldcom Fraud Trial
Summary:
Former WorldCom chief financial officer Scott Sullivan testified in court,
admitting to lying to the board and willingness to commit fraud to meet Wall
Street expectations, implicating his ex-boss Bernie Ebbers in the $11 billion
financial fraud. Ebbers, however, denied knowledge of the manipulated financial
statements and the pressure to engage in fraudulent activities.
--------------------------------------------------------------------------------
📌 Topic 12:
Title: Yukos Oil Company
Summary:
Yukos, the Russian oil company, is embroiled in legal battles in the U.S. as it
fights against the Russian government's moves to break it up and auction off its
key production unit, Yugansk, to settle a massive tax bill. Amid accusations of
dishonesty in court, Yukos is also suing multiple firms for $20 billion,
claiming they played a role in the state auction of its assets.
--------------------------------------------------------------------------------
📌 Topic 13:
Title: European Indoor Athletics Championships
Summary:
The recent European indoor trials showcased strong prospects for European
championship medals, particularly highlighting athletes like Jason Gardner, who
secured titles in the men's 60m events. Jade Johnson also demonstrated her
competitive edge by narrowly defeating Kelly Sotherton in the long jump, as
athletes continue to make strides in preparation for upcoming championships.
--------------------------------------------------------------------------------
📌 Topic 14:
Title: The Future of Mobile Phones
Summary:
Mobile phones continue to see significant sales growth, with over 674 million
units sold globally last year, indicating strong demand for communication
technology. However, despite efforts to integrate music download services,
mobiles are not yet equipped to fully replace portable media players, as
consumers remain hesitant to forego their dedicated devices for multimedia
functions.
--------------------------------------------------------------------------------
📌 Topic 15:
Title: The Future of Peer-to-Peer Networks and Digital Media Piracy
Summary:
Peer-to-peer (P2P) networks are anticipated to persist and potentially be
leveraged by commercial media companies, especially following the resolution of
significant legal challenges against file-sharing individuals. Additionally,
major technology firms are collaborating to create a standardized system to
prevent piracy of digital music and video, which could lead to confusion among
users due to competing formats.
--------------------------------------------------------------------------------
📌 Topic 16:
Title: The Future of Video Gaming
Summary:
Electronic Arts (EA) aims to become the largest entertainment firm globally,
seeking to compete with industry giants like Disney through innovative gaming.
Meanwhile, the video gaming industry saw significant growth in 2004, and the
development of next-generation consoles presents both opportunities and
challenges for game developers.
--------------------------------------------------------------------------------
📌 Topic 17:
Title: UK Election Budget Strategies and Tax Policies
Summary:
Tony Blair has expressed support for Chancellor Gordon Brown's pre-budget report
amid criticism over its optimistic outlook on the UK economy, while Brown has
introduced measures like increasing the threshold for stamp duty and a one-off
council tax refund to appeal to voters. Meanwhile, Conservative leader Michael
Howard has announced a £4 billion tax cut plan should his party win the upcoming
election, although details regarding the specifics of the cuts remain unclear.
--------------------------------------------------------------------------------
📌 Topic 18:
Title: Trends and Challenges in Internet Search Habits and Technologies
Summary:
Recent reports highlight the complexities of user behavior in internet searches,
revealing that while the majority of searchers successfully find what they seek,
there remains a blend of naivety and sophistication among them. Additionally,
competition between tech giants like Microsoft and Google continues to shape the
evolution of search technology, leading to more personalized and efficient user
experiences.
--------------------------------------------------------------------------------
📌 Topic 19:
Title: Kenteris and Thanou
Summary:
Greek sprinters Kostas Kenteris and Katerina Thanou faced doping allegations
from the International Association of Athletics Federations (IAAF) for missing
drug tests, leading to provisional suspensions. However, they were ultimately
cleared of the charges by an independent tribunal, which ruled on their case
amidst the ongoing controversy surrounding doping in athletics.
--------------------------------------------------------------------------------
📌 Topic 20:
Title: Pension Reforms and Minimum Wage Increases
Summary:
The government is in talks with public sector unions to avert a series of
strikes over proposed pension reforms that could affect millions of workers.
Additionally, the minimum wage is set to rise to £5.05 in October, benefiting
over 1 million people.
--------------------------------------------------------------------------------
📌 Topic 21:
Title: Fiat-GM Negotiations and Fiat's Automotive Struggles
Summary:
Fiat and General Motors (GM) faced a critical deadline on February 1 to resolve
a disagreement regarding GM's obligation to purchase a majority stake in Fiat's
struggling car division. Rather than proceeding with the buyout, GM opted to pay
Fiat €1.55 billion ($2 billion) to exit the deal, while Fiat took proactive
measures by appointing a new CEO to revitalize its auto business.
--------------------------------------------------------------------------------
📌 Topic 22:
Title: US Economic Growth and Jobs Trends Amid Rising Interest Rates
Summary:
The U.S. economy experienced growth in the third quarter, driven by strong
consumer spending and adding 157,000 jobs despite a slight dip in hiring.
Additionally, the Federal Reserve raised interest rates to 2% for the fourth
time in five months in response to economic conditions.
--------------------------------------------------------------------------------
📌 Topic 23:
Title: US Dollar and Trade Deficit
Summary:
The US trade deficit has surged to over $60 billion, driven by a decline in
exports and an increase in imports, raising concerns about the economic outlook.
Concurrently, the US dollar has experienced significant fluctuations against
major currencies like the euro and yen, affected by central bank comments and
economic data, despite attempts by officials to stabilize its value.
--------------------------------------------------------------------------------
📌 Topic 24:
Title: UK Commitment to Global Aid and Debt Relief Initiatives
Summary:
UK Prime Minister Tony Blair has indicated that the government will
significantly increase aid to tsunami-affected countries and is facing calls to
double overseas aid to combat poverty and debt in developing nations.
Additionally, G7 finance ministers have supported a plan to relieve debt for the
world's poorest countries, as Chancellor Gordon Brown sets ambitious goals for
the UK's G8 presidency.
--------------------------------------------------------------------------------
📌 Topic 25:
Title: The Evolution of Gadgets
Summary:
The documents highlight the significance of the Cell processor and its backing
by major industry players like IBM, while also discussing the popularity of
gadgets like the iPod and the acclaim of the Apple PowerBook 100 as a
revolutionary portable computer. As the holiday season approaches, there are
predictions of a gadget shortage, with consumers eager to purchase sought-after
tech devices.
--------------------------------------------------------------------------------
📌 Topic 26:
Title: Economic Impact and Recovery in Southeast Asia Post-Disaster
Summary:
Following a devastating earthquake and tsunami that resulted in significant loss
of life and economic impact in Southern Asia, major reinsurers like Munich Re
and Swiss Re have sought to reassure the market regarding potential claims.
Despite the tragedy, stock markets in Indonesia, India, and Hong Kong reached
record highs, indicating investor confidence, while Thailand cut its economic
growth forecast as the region reevaluates the cost of damages and the ongoing
economic impact on tourism and reconstruction efforts.
--------------------------------------------------------------------------------
📌 Topic 27:
Title: Kelly Holmes
Summary:
The documents discuss Kelly Holmes's journey and achievements in athletics,
particularly her remarkable performances during the Olympic year in Athens,
where she won gold medals in the 800m and 1500m events. They also reflect on her
return to form and the mixed emotions experienced by athletics fans in 2004,
emphasizing her struggle with loneliness and competitive pressures.
--------------------------------------------------------------------------------
📌 Topic 28:
Title: December Retail Sales Trends and Holiday Shopping Insights
Summary:
UK retail sales saw a positive increase in November as Christmas shopping picked
up, while US retail figures showed mixed results, with a decline in car sales
impacting overall performance. December brought a surge in US retail sales,
largely driven by strong car sales, despite some retailers struggling to boost
sales and needing to cut prices.
--------------------------------------------------------------------------------
📌 Topic 29:
Title: Immigration and Asylum Reform Plans in the UK
Summary:
Home Secretary Charles Clarke is advocating for a points-based system for
economic migrants to the UK, which includes tighter border controls and a test
to assess contributions to the country. Meanwhile, Tory leader Michael Howard
has criticized the current asylum system's costs and proposed reforms he claims
will ensure fairness for legitimate refugees.
--------------------------------------------------------------------------------
📌 Topic 30:
Title: Kilroy-Silk's Political Shift
Summary:
Robert Kilroy-Silk, the former UK Independence Party MEP and chat show host, has
resigned from UKIP, expressing his shame and labeling the party as a "joke." He
has since launched his new political party, Veritas, with the aim of
transforming British politics and has gained a defector from UKIP, Damian
Hockney, as he embarks on this new venture.
--------------------------------------------------------------------------------
📌 Topic 31:
Title: UK Housing Market Trends and Interest Rate Effects
Summary:
The Bank of England has maintained interest rates at 4.75% amidst ongoing
fluctuations in the housing market, reflecting efforts to manage consumer debt
and the housing market's stability. Recent data reveals a slight dip in UK house
prices in November, followed by marginal increases in subsequent months,
indicating volatility in property values amid changing economic conditions.
--------------------------------------------------------------------------------
📌 Topic 32:
Title: Growth and Trends in the Gadget Market at CES 2005
Summary:
The gadget market is expected to experience an 11% growth in 2005, driven by the
ongoing explosion in consumer technology, as highlighted at the Consumer
Electronics Show (CES) in Las Vegas. Thousands of technology enthusiasts and
industry experts are attending the event to explore the latest innovations and
devices that will soon be available in stores.
--------------------------------------------------------------------------------
📌 Topic 33:
Title: Launch and Impact of the Nintendo DS Handheld Console in Europe
Summary:
Nintendo's new handheld console, the DS, is set to launch in Europe on March 11
for £99 (149 euros) and features touch-screen controls, targeting the growing
mobile gaming market. With its official debut, many UK stores opened at midnight
to allow eager gamers to purchase the device, as Nintendo aims to maintain its
leadership in the gaming industry.
--------------------------------------------------------------------------------
📌 Topic 34:
Title: Eurozone Economic Growth Trends and Challenges in 2004-2005
Summary:
The economic landscape in Europe has shown mixed signals, with the European
Central Bank maintaining interest rates amid growth concerns, while consumer
spending has driven growth in France. However, Germany's economy faced a
contraction, highlighting challenges in achieving a coordinated recovery across
the Eurozone.
--------------------------------------------------------------------------------
📌 Topic 35:
Title: Reforming the House of Lords
Summary:
Former Labour leader Neil Kinnock has been made a life peer in the House of
Lords, taking the title Baron Kinnock of Bedwellty. Meanwhile, Betty Boothroyd
has advocated for the establishment of a dedicated speaker for the House of
Lords, emphasizing the need for peers to lead reforms in the upper chamber.
--------------------------------------------------------------------------------
📌 Topic 36:
Title: Growth of India's Aviation Industry
Summary:
Air Deccan, India's first low-cost airline, is rapidly expanding its fleet with
significant deals, including the acquisition of 36 planes from ATR and an $1.8
billion order for 30 Airbus A320 aircraft. Meanwhile, Boeing is striving to
reclaim its industry leadership by unveiling its new long-distance 777-200LR,
capable of flying nearly 11,000 miles non-stop.
--------------------------------------------------------------------------------
📌 Topic 37:
Title: Corporate Changes and Mergers
Summary:
Laura Ashley's chief executive Ainul Mohd-Saaid is resigning for personal
reasons, effective February 1. In the telecommunications sector, MCI's shares
have risen amidst takeover speculation, with Verizon making a $6.8 billion bid
while Qwest is also pursuing acquisition talks.
--------------------------------------------------------------------------------
📌 Topic 38:
Title: Chinese Financial and Environmental Turmoil
Summary:
South Korea's LG Card faces potential liquidation by creditors if its former
parent company does not agree to a bailout, while in China, major developments
include the Three Gorges Project refusing to halt construction despite
governmental orders and the suspension of 26 power projects over environmental
concerns. Additionally, a significant financial scandal has emerged as two
senior officials at the Bank of China allegedly disappeared amid the loss of
$120 million in funds.
--------------------------------------------------------------------------------
📌 Topic 39:
Title: Economic Performance in Singapore and Japan (2004)
Summary:
In 2004, Singapore experienced significant economic growth of 8.1%, driven by a
strong manufacturing sector, while Japan faced economic challenges, slipping
into recession due to declining industrial output and weak exports. Business
confidence in Japan also deteriorated, reflecting concerns over rising oil
prices and a strong yen impacting the economy.
--------------------------------------------------------------------------------
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h2 id="conclusion-what-we-learned-from-bertopic-llms">✅ Conclusion: What We Learned from BERTopic + LLMs<a class="anchor-link" href="#conclusion-what-we-learned-from-bertopic-llms">¶</a></h2><p>With just a few lines of code and a strong pre-trained model, we’ve:</p>
<ul>
<li>Embedded our <strong>text corpus</strong> into a rich semantic space.</li>
<li><strong>Clustered</strong> more than 2000 news articles without any labels.</li>
<li>Used <strong>LLMs (via LiteLLM)</strong> to generate meaningful <strong>titles and summaries</strong> for each topic.</li>
<li>Built <strong>interactive visualizations</strong> and gained deep insight into the structure of our dataset.</li>
</ul>
<hr />
<h3 id="why-bertopic-is-powerful">🛠️ Why BERTopic is Powerful<a class="anchor-link" href="#why-bertopic-is-powerful">¶</a></h3><ul>
<li>🧠 <strong>Leverages BERT Knowledge</strong>: You don’t need to retrain from scratch — we reused deep semantic knowledge from BERT/MiniLM.</li>
<li>⚡ <strong>Plug-and-Play LLMs</strong>: We easily added GPT-4o to auto-generate human-readable titles and summaries.</li>
<li>📊 <strong>Interactive Visuals</strong>: Built-in UMAP plots and dendrograms help you <strong>explore, interpret, and explain</strong> your findings.</li>
<li>💻 <strong>Minimal Code, Maximum Insight</strong>: No need for manual preprocessing, labeling, or advanced clustering setup.</li>
</ul>
<hr />
<h3 id="limitations-and-considerations">⚠️ Limitations and Considerations<a class="anchor-link" href="#limitations-and-considerations">¶</a></h3><p>While BERTopic is great for <strong>exploratory analysis</strong>, keep in mind:</p>
<ul>
<li>🔁 <strong>Tracking Topics Over Time</strong>: Topic IDs may shift if you re-run or update the model. Not ideal for longitudinal studies unless using techniques like dynamic topic modeling.</li>
<li>🧪 <strong>Evaluation is Hard</strong>: Topic modeling is unsupervised — so evaluating quality is often subjective. Titles and summaries may <strong>seem good but misrepresent</strong> the content if LLMs hallucinate.</li>
<li>🧠 <strong>LLM Cost & Speed</strong>: Using LLMs adds inference cost and response latency — important if scaling to large datasets.</li>
<li>🔍 <strong>Over-Summarization Risk</strong>: With few documents and aggressive prompting, LLMs might <strong>oversimplify</strong> diverse themes in a topic.</li>
</ul>
<hr />
<h2 id="step-by-step-breakdown-how-bertopic-works">🔍 Step-by-Step Breakdown: How BERTopic Works<a class="anchor-link" href="#step-by-step-breakdown-how-bertopic-works">¶</a></h2><p>In the first half of this notebook, we focused on using BERTopic like a black box. Now it’s time to <strong>open that box</strong> and understand how it really works.</p>
<p>We'll unpack the full BERTopic pipeline into 5 key steps:</p>
<hr />
<h3 id="overview-of-the-pipeline">🧭 Overview of the Pipeline<a class="anchor-link" href="#overview-of-the-pipeline">¶</a></h3><table>
<thead>
<tr>
<th>Step</th>
<th>Component</th>
<th>Purpose</th>
</tr>
</thead>
<tbody>
<tr>
<td>1️⃣</td>
<td><strong>Document Embedding</strong></td>
<td>Convert raw texts into dense vectors using a sentence transformer model (e.g. MiniLM).</td>
</tr>
<tr>
<td>2️⃣</td>
<td><strong>Dimensionality Reduction</strong></td>
<td>Reduce high-dimensional embeddings using <strong>UMAP</strong> so we can visualize and cluster them more efficiently.</td>
</tr>
<tr>
<td>3️⃣</td>
<td><strong>Clustering</strong></td>
<td>Group similar documents using <strong>HDBSCAN</strong>, a density-based clustering algorithm.</td>
</tr>
<tr>
<td>4️⃣</td>
<td><strong>Topic Representation</strong></td>
<td>Extract keywords per topic using class-based TF-IDF (c-TF-IDF).</td>
</tr>
<tr>
<td>5️⃣</td>
<td><strong>LLM-Based Interpretation</strong></td>
<td>Use GPT (via LiteLLM) to generate titles and summaries for each cluster.</td>
</tr>
</tbody>
</table>
<hr />
<h3 id="what-well-do-next">🎯 What We’ll Do Next<a class="anchor-link" href="#what-well-do-next">¶</a></h3><p>We’ll now go through this pipeline <strong>step by step</strong>:</p>
<ul>
<li>First we’ll embed the documents.</li>
<li>Then reduce their dimensionality.</li>
<li>Followed by clustering and topic extraction.</li>
<li>Finally, we’ll regenerate topics using a c-TF-IDF representation — and compare it to the LLM-based summaries.</li>
</ul>
<h3 id="step-1-sentence-embeddings">📌 Step 1: Sentence Embeddings<a class="anchor-link" href="#step-1-sentence-embeddings">¶</a></h3><p>The first step is to turn each document (news article) into a <strong>dense vector</strong> using a pre-trained sentence transformer.</p>
<p>We’ll use the <code>all-MiniLM-L6-v2</code> model from Hugging Face — a lightweight yet strong model trained specifically for semantic similarity tasks.</p>
<h4 id="why-sentence-embeddings">Why Sentence Embeddings?<a class="anchor-link" href="#why-sentence-embeddings">¶</a></h4><ul>
<li>These embeddings capture <strong>meaning</strong>, not just surface form.</li>
<li>They place semantically similar sentences <strong>closer</strong> in vector space.</li>
<li>Unlike bag-of-words models, they can generalize across wording variations.</li>
</ul>
<p>Let’s compute embeddings for each document in our BBC dataset.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [8]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-8", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">sentence_transformers</span><span class="w"> </span><span class="kn">import</span> <span class="n">SentenceTransformer</span>
<span class="c1"># Load the sentence transformer model</span>
<span class="n">embedding_model</span> <span class="o">=</span> <span class="n">SentenceTransformer</span><span class="p">(</span><span class="s2">"all-MiniLM-L6-v2"</span><span class="p">)</span>
<span class="c1"># Convert documents into sentence embeddings</span>
<span class="n">embeddings</span> <span class="o">=</span> <span class="n">embedding_model</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]</span><span class="o">.</span><span class="n">tolist</span><span class="p">(),</span> <span class="n">show_progress_bar</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="c1"># Check the shape</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">"✅ Shape of embeddings:"</span><span class="p">,</span> <span class="n">embeddings</span><span class="o">.</span><span class="n">shape</span><span class="p">)</span>
</pre></div>
<div id="cell-8" class="clipboard-copy-txt">from sentence_transformers import SentenceTransformer
# Load the sentence transformer model
embedding_model = SentenceTransformer("all-MiniLM-L6-v2")
# Convert documents into sentence embeddings
embeddings = embedding_model.encode(df["document"].tolist(), show_progress_bar=True)
# Check the shape
print("✅ Shape of embeddings:", embeddings.shape)</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output " data-mime-type="text/plain">
<pre>Batches: 0%| | 0/70 [00:00<?, ?it/s]</pre>
</div>
</div>
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>✅ Shape of embeddings: (2225, 384)
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="example-cosine-similarity-in-embedding-space">🔍 Example: Cosine Similarity in Embedding Space<a class="anchor-link" href="#example-cosine-similarity-in-embedding-space">¶</a></h4><p>Let’s explore what these sentence embeddings really mean by computing <strong>cosine similarity</strong> between a few examples:</p>
<ul>
<li>We'll take two documents from the <strong>same topic</strong> and see how similar their embeddings are.</li>
<li>Then, we’ll compare two documents from <strong>different topics</strong> to see the contrast.</li>
</ul>
<p>The cosine similarity score ranges from <strong>-1 to 1</strong>:</p>
<ul>
<li><code>1</code> → Perfectly similar</li>
<li><code>0</code> → No similarity</li>
<li><code>-1</code> → Opposite directions (rare in this case)</li>
</ul>
<p>This helps us confirm that embeddings from the same topic cluster together in semantic space.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [9]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-9", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">sklearn.metrics.pairwise</span><span class="w"> </span><span class="kn">import</span> <span class="n">cosine_similarity</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">np</span>
<span class="c1"># Select two documents from the same topic (e.g., label == 'tech')</span>
<span class="n">label_name</span> <span class="o">=</span> <span class="s2">"tech"</span>
<span class="n">same_label_docs</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="n">df</span><span class="p">[</span><span class="s2">"label_text"</span><span class="p">]</span> <span class="o">==</span> <span class="n">label_name</span><span class="p">]</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">1</span><span class="p">)</span>
<span class="k">for</span> <span class="n">doc</span> <span class="ow">in</span> <span class="n">same_label_docs</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]:</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Document: </span><span class="si">{</span><span class="n">doc</span><span class="p">[:</span><span class="mi">100</span><span class="p">]</span><span class="si">}</span><span class="s2">..."</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'-'</span><span class="o">*</span><span class="mi">100</span><span class="p">)</span>
<span class="n">same_embs</span> <span class="o">=</span> <span class="n">embedding_model</span><span class="o">.</span><span class="n">encode</span><span class="p">(</span><span class="n">same_label_docs</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]</span><span class="o">.</span><span class="n">tolist</span><span class="p">())</span>
<span class="c1"># Cosine similarity</span>
<span class="n">sim_same</span> <span class="o">=</span> <span class="n">cosine_similarity</span><span class="p">([</span><span class="n">same_embs</span><span class="p">[</span><span class="mi">0</span><span class="p">]],</span> <span class="p">[</span><span class="n">same_embs</span><span class="p">[</span><span class="mi">1</span><span class="p">]])[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"🧠 Same-topic docs ('</span><span class="si">{</span><span class="n">label_name</span><span class="si">}</span><span class="s2">') similarity: </span><span class="si">{</span><span class="n">sim_same</span><span class="si">:</span><span class="s2">.3f</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'-'</span><span class="o">*</span><span class="mi">100</span><span class="p">)</span>
<span class="c1"># Select two documents from different topics</span>
<span class="n">doc1</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="n">df</span><span class="p">[</span><span class="s2">"label_text"</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"sport"</span><span class="p">]</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>
<span class="n">doc2</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="n">df</span><span class="p">[</span><span class="s2">"label_text"</span><span class="p">]</span> <span class="o">==</span> <span class="s2">"business"</span><span class="p">]</span><span class="o">.</span><span class="n">sample</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">43</span><span class="p">)</span>
<span class="n">diff_embs</span> <span class="o">=</span> <span class="n">embedding_model</span><span class="o">.</span><span class="n">encode</span><span class="p">([</span><span class="n">doc1</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">doc2</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">]])</span>
<span class="k">for</span> <span class="n">doc</span> <span class="ow">in</span> <span class="p">[</span><span class="n">doc1</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">],</span> <span class="n">doc2</span><span class="p">[</span><span class="s2">"document"</span><span class="p">]</span><span class="o">.</span><span class="n">values</span><span class="p">[</span><span class="mi">0</span><span class="p">]]:</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"Document: </span><span class="si">{</span><span class="n">doc</span><span class="p">[:</span><span class="mi">100</span><span class="p">]</span><span class="si">}</span><span class="s2">..."</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="s1">'-'</span><span class="o">*</span><span class="mi">100</span><span class="p">)</span>
<span class="n">sim_diff</span> <span class="o">=</span> <span class="n">cosine_similarity</span><span class="p">([</span><span class="n">diff_embs</span><span class="p">[</span><span class="mi">0</span><span class="p">]],</span> <span class="p">[</span><span class="n">diff_embs</span><span class="p">[</span><span class="mi">1</span><span class="p">]])[</span><span class="mi">0</span><span class="p">][</span><span class="mi">0</span><span class="p">]</span>
<span class="c1"># Print results</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"🔀 Different-topic docs similarity: </span><span class="si">{</span><span class="n">sim_diff</span><span class="si">:</span><span class="s2">.3f</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
</pre></div>
<div id="cell-9" class="clipboard-copy-txt">from sklearn.metrics.pairwise import cosine_similarity
import numpy as np
# Select two documents from the same topic (e.g., label == 'tech')
label_name = "tech"
same_label_docs = df[df["label_text"] == label_name].sample(2, random_state=1)
for doc in same_label_docs["document"]:
print(f"Document: {doc[:100]}...")
print('-'*100)
same_embs = embedding_model.encode(same_label_docs["document"].tolist())
# Cosine similarity
sim_same = cosine_similarity([same_embs[0]], [same_embs[1]])[0][0]
print(f"🧠 Same-topic docs ('{label_name}') similarity: {sim_same:.3f}")
print('-'*100)
# Select two documents from different topics
doc1 = df[df["label_text"] == "sport"].sample(1, random_state=42)
doc2 = df[df["label_text"] == "business"].sample(1, random_state=43)
diff_embs = embedding_model.encode([doc1["document"].values[0], doc2["document"].values[0]])
for doc in [doc1["document"].values[0], doc2["document"].values[0]]:
print(f"Document: {doc[:100]}...")
print('-'*100)
sim_diff = cosine_similarity([diff_embs[0]], [diff_embs[1]])[0][0]
# Print results
print(f"🔀 Different-topic docs similarity: {sim_diff:.3f}")</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>Document: dublin hi-tech labs to shut down dublin s hi-tech research laboratory media labs europe is to shut...
----------------------------------------------------------------------------------------------------
Document: google launches tv search service the net search giant google has launched a search service that let...
----------------------------------------------------------------------------------------------------
🧠 Same-topic docs ('tech') similarity: 0.182
----------------------------------------------------------------------------------------------------
Document: sa return to mauritius top seeds south africa return to the scene of one of their most embarrassing ...
----------------------------------------------------------------------------------------------------
Document: nasdaq planning $100m-share sale the owner of the technology-dominated nasdaq stock index plans to s...
----------------------------------------------------------------------------------------------------
🔀 Different-topic docs similarity: -0.028
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>This will usually show that same-topic similarity is substantially higher — which is the foundation for clustering later.</p>
<hr />
<h3 id="step-2-dimensionality-reduction-with-pca-umap">🌐 Step 2: Dimensionality Reduction with PCA + UMAP<a class="anchor-link" href="#step-2-dimensionality-reduction-with-pca-umap">¶</a></h3><p>Now that we have high-dimensional sentence embeddings, we want to <strong>reduce their dimensionality</strong> to make them easier to cluster and visualize.</p>
<h4 id="why-reduce-dimensionality">🤔 Why Reduce Dimensionality?<a class="anchor-link" href="#why-reduce-dimensionality">¶</a></h4><ul>
<li>Sentence embeddings typically live in a <strong>384- or 768-dimensional space</strong>.</li>
<li>Clustering directly in high dimensions is often noisy and less meaningful:<ul>
<li>Distance metrics like cosine or Euclidean become unreliable due to the <strong>curse of dimensionality</strong>.</li>
</ul>
</li>
<li>Reducing to <strong>fewer dimensions</strong> (e.g. 5–50) helps create more <strong>compact and distinct clusters</strong>.</li>
</ul>
<h4 id="pca-principal-component-analysis">🧮 PCA (Principal Component Analysis)<a class="anchor-link" href="#pca-principal-component-analysis">¶</a></h4><ul>
<li>As a preprocessing step, we apply PCA to <strong>denoise</strong> the embeddings.</li>
<li>Keeps the most important directions of variance.</li>
</ul>
<h4 id="umap-uniform-manifold-approximation-and-projection">🌈 UMAP (Uniform Manifold Approximation and Projection)<a class="anchor-link" href="#umap-uniform-manifold-approximation-and-projection">¶</a></h4><ul>
<li>UMAP then projects the data into an even <strong>lower-dimensional latent space</strong> (e.g. 5D) that preserves local and global structure.</li>
<li>This makes clustering more effective and robust.</li>
</ul>
<p>THis alrogithm is really fast and efficient, and it's a great way to reduce the dimensionality of the data. To know more about UMAP, you can read the <a href="https://umap-learn.readthedocs.io/en/latest/index.html">official documentation</a>. Disclaimer: this is tricky !</p>
<p>Let’s apply both and visualize the 2D representation too!</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [10]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-10", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">sklearn.decomposition</span><span class="w"> </span><span class="kn">import</span> <span class="n">PCA</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">umap</span><span class="w"> </span><span class="kn">import</span> <span class="n">UMAP</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="c1"># Step 1: PCA to reduce noise</span>
<span class="n">pca</span> <span class="o">=</span> <span class="n">PCA</span><span class="p">(</span><span class="n">n_components</span><span class="o">=</span><span class="mi">50</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>
<span class="n">embeddings_pca</span> <span class="o">=</span> <span class="n">pca</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">embeddings</span><span class="p">)</span>
<span class="c1"># Step 2: UMAP for nonlinear dimensionality reduction</span>
<span class="n">umap_model</span> <span class="o">=</span> <span class="n">UMAP</span><span class="p">(</span><span class="n">n_components</span><span class="o">=</span><span class="mi">10</span><span class="p">,</span> <span class="n">random_state</span><span class="o">=</span><span class="mi">42</span><span class="p">)</span>
<span class="n">embeddings_umap</span> <span class="o">=</span> <span class="n">umap_model</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">embeddings_pca</span><span class="p">)</span>
<span class="n">unique_labels</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="s2">"label_text"</span><span class="p">]</span><span class="o">.</span><span class="n">unique</span><span class="p">()</span>
<span class="n">colors</span> <span class="o">=</span> <span class="n">plt</span><span class="o">.</span><span class="n">cm</span><span class="o">.</span><span class="n">tab10</span><span class="p">(</span><span class="n">np</span><span class="o">.</span><span class="n">linspace</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">unique_labels</span><span class="p">)))</span>
<span class="c1"># Plot 2D projection</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">6</span><span class="p">))</span>
<span class="k">for</span> <span class="n">i</span><span class="p">,</span> <span class="n">label</span> <span class="ow">in</span> <span class="nb">enumerate</span><span class="p">(</span><span class="n">unique_labels</span><span class="p">):</span>
<span class="n">indices</span> <span class="o">=</span> <span class="n">df</span><span class="p">[</span><span class="s2">"label_text"</span><span class="p">]</span> <span class="o">==</span> <span class="n">label</span>
<span class="n">plt</span><span class="o">.</span><span class="n">scatter</span><span class="p">(</span>
<span class="n">embeddings_umap</span><span class="p">[</span><span class="n">indices</span><span class="p">,</span> <span class="mi">0</span><span class="p">],</span>
<span class="n">embeddings_umap</span><span class="p">[</span><span class="n">indices</span><span class="p">,</span> <span class="mi">1</span><span class="p">],</span>
<span class="n">label</span><span class="o">=</span><span class="n">label</span><span class="p">,</span>
<span class="n">alpha</span><span class="o">=</span><span class="mf">0.6</span><span class="p">,</span>
<span class="n">color</span><span class="o">=</span><span class="n">colors</span><span class="p">[</span><span class="n">i</span><span class="p">]</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"UMAP Projection of Document Embeddings"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"UMAP-1"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"UMAP-2"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s2">"Label"</span><span class="p">,</span> <span class="n">loc</span><span class="o">=</span><span class="s2">"best"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
<div id="cell-10" class="clipboard-copy-txt">from sklearn.decomposition import PCA
from umap import UMAP
import matplotlib.pyplot as plt
# Step 1: PCA to reduce noise
pca = PCA(n_components=50, random_state=42)
embeddings_pca = pca.fit_transform(embeddings)
# Step 2: UMAP for nonlinear dimensionality reduction
umap_model = UMAP(n_components=10, random_state=42)
embeddings_umap = umap_model.fit_transform(embeddings_pca)
unique_labels = df["label_text"].unique()
colors = plt.cm.tab10(np.linspace(0, 1, len(unique_labels)))
# Plot 2D projection
plt.figure(figsize=(10, 6))
for i, label in enumerate(unique_labels):
indices = df["label_text"] == label
plt.scatter(
embeddings_umap[indices, 0],
embeddings_umap[indices, 1],
label=label,
alpha=0.6,
color=colors[i]
)
plt.title("UMAP Projection of Document Embeddings")
plt.xlabel("UMAP-1")
plt.ylabel("UMAP-2")
plt.legend(title="Label", loc="best")
plt.show()</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedImage jp-OutputArea-output ">
<img src="data:image/png;base64,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"
class="
"
>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<p>This UMAP projection shows a very promising representation of document embeddings — here's a breakdown of what we observe:</p>
<h3 id="what-we-see">✅ <strong>What We See</strong><a class="anchor-link" href="#what-we-see">¶</a></h3><ul>
<li><p><strong>Clear Clustering by Label</strong>:</p>
<ul>
<li>Each group of points is is easily distinguishable, even if they are not perfectly separated, which means the model has learned <strong>semantic distinctions</strong> between topics.</li>
<li>This is especially impressive considering we’re using <strong>zero fine-tuning</strong> — only the raw semantic embeddings.</li>
</ul>
</li>
</ul>
<h3 id="why-this-matters">🔍 Why This Matters<a class="anchor-link" href="#why-this-matters">¶</a></h3><ul>
<li>This visualization confirms that <strong>semantic embeddings from pretrained transformers</strong> already contain <strong>enough structure</strong> to group documents by topic.</li>
<li>This is what allows BERTopic and other clustering tools to operate effectively with little or no supervision.</li>
</ul>
<hr />
<h3 id="step-3-clustering-with-hdbscan">📊 Step 3: Clustering with HDBSCAN<a class="anchor-link" href="#step-3-clustering-with-hdbscan">¶</a></h3><p>Now that we have semantically meaningful 10-dimensional representations (via PCA + UMAP), it's time to <strong>identify topic clusters</strong> using an unsupervised clustering algorithm.</p>
<h4 id="why-hdbscan">🤖 Why HDBSCAN?<a class="anchor-link" href="#why-hdbscan">¶</a></h4><p>HDBSCAN (Hierarchical Density-Based Spatial Clustering of Applications with Noise) is especially well-suited for topic modeling:</p>
<ul>
<li>✅ <strong>No need to pre-specify the number of clusters</strong>.</li>
<li>✅ Can find <strong>clusters of varying shapes and densities</strong>.</li>
<li>✅ Automatically labels low-confidence documents as <strong>noise</strong> (topic -1).</li>
<li>✅ Scales well with real-world text data.</li>
</ul>
<p>This makes HDBSCAN much more flexible than k-means or DBSCAN when working with high-dimensional language embeddings. To know more about HDBSCAN, you can read the <a href="https://hdbscan.readthedocs.io/en/latest/index.html">official documentation</a>.</p>
<hr />
<h4 id="goal">🧠 Goal<a class="anchor-link" href="#goal">¶</a></h4><p>Group together documents that are semantically similar — using the <strong>dense embedding space</strong> created from MiniLM → PCA → UMAP.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [11]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-11", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">hdbscan</span>
<span class="c1"># Fit HDBSCAN on the reduced embeddings</span>
<span class="n">hdb</span> <span class="o">=</span> <span class="n">hdbscan</span><span class="o">.</span><span class="n">HDBSCAN</span><span class="p">(</span><span class="n">min_cluster_size</span><span class="o">=</span><span class="mi">15</span><span class="p">,</span> <span class="n">prediction_data</span><span class="o">=</span><span class="kc">True</span><span class="p">)</span>
<span class="n">clusters</span> <span class="o">=</span> <span class="n">hdb</span><span class="o">.</span><span class="n">fit_predict</span><span class="p">(</span><span class="n">embeddings_umap</span><span class="p">)</span>
<span class="c1"># Attach the cluster labels to our original DataFrame</span>
<span class="n">df</span><span class="p">[</span><span class="s2">"cluster"</span><span class="p">]</span> <span class="o">=</span> <span class="n">clusters</span>
<span class="c1"># Quick count of discovered clusters</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"🔍 HDBSCAN found </span><span class="si">{</span><span class="nb">len</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">clusters</span><span class="p">))</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="p">(</span><span class="mi">1</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="o">-</span><span class="mi">1</span><span class="w"> </span><span class="ow">in</span><span class="w"> </span><span class="n">clusters</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="mi">0</span><span class="p">)</span><span class="si">}</span><span class="s2"> clusters."</span><span class="p">)</span>
<span class="nb">print</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="s2">"cluster"</span><span class="p">]</span><span class="o">.</span><span class="n">value_counts</span><span class="p">())</span>
</pre></div>
<div id="cell-11" class="clipboard-copy-txt">import hdbscan
# Fit HDBSCAN on the reduced embeddings
hdb = hdbscan.HDBSCAN(min_cluster_size=15, prediction_data=True)
clusters = hdb.fit_predict(embeddings_umap)
# Attach the cluster labels to our original DataFrame
df["cluster"] = clusters
# Quick count of discovered clusters
print(f"🔍 HDBSCAN found {len(set(clusters)) - (1 if -1 in clusters else 0)} clusters.")
print(df["cluster"].value_counts())</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>🔍 HDBSCAN found 7 clusters.
cluster
0 914
1 792
5 186
6 136
4 87
3 67
2 30
-1 13
Name: count, dtype: int64
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="quick-look-at-clustering-results">🧭 Quick Look at Clustering Results<a class="anchor-link" href="#quick-look-at-clustering-results">¶</a></h4><p>HDBSCAN has just grouped our documents into <strong>semantic clusters</strong> based on their embeddings.</p>
<p>Here’s what we found:</p>
<ul>
<li>🧠 <strong>7 distinct clusters</strong> (excluding noise).</li>
<li>🚫 <strong>13 documents</strong> were marked as noise (<code>cluster = -1</code>) — they didn’t fit confidently into any cluster.</li>
<li>📊 <strong>Cluster 0</strong> and <strong>Cluster 1</strong> dominate the dataset — containing 900+ and 700+ documents respectively.</li>
</ul>
<p>Let’s visualize how these clusters are distributed in the embedding space!</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [12]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-12", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">seaborn</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">sns</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">matplotlib.pyplot</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="nn">plt</span>
<span class="c1"># Visualize discovered clusters</span>
<span class="n">plt</span><span class="o">.</span><span class="n">figure</span><span class="p">(</span><span class="n">figsize</span><span class="o">=</span><span class="p">(</span><span class="mi">10</span><span class="p">,</span> <span class="mi">6</span><span class="p">))</span>
<span class="n">sns</span><span class="o">.</span><span class="n">scatterplot</span><span class="p">(</span>
<span class="n">x</span><span class="o">=</span><span class="n">embeddings_umap</span><span class="p">[:,</span> <span class="mi">0</span><span class="p">],</span>
<span class="n">y</span><span class="o">=</span><span class="n">embeddings_umap</span><span class="p">[:,</span> <span class="mi">1</span><span class="p">],</span>
<span class="n">hue</span><span class="o">=</span><span class="n">df</span><span class="p">[</span><span class="s2">"cluster"</span><span class="p">]</span><span class="o">.</span><span class="n">astype</span><span class="p">(</span><span class="nb">str</span><span class="p">),</span>
<span class="n">palette</span><span class="o">=</span><span class="s2">"tab10"</span><span class="p">,</span>
<span class="n">alpha</span><span class="o">=</span><span class="mf">0.7</span><span class="p">,</span>
<span class="n">legend</span><span class="o">=</span><span class="s2">"full"</span>
<span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">title</span><span class="p">(</span><span class="s2">"UMAP Projection Colored by HDBSCAN Clusters"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">xlabel</span><span class="p">(</span><span class="s2">"UMAP-1"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">ylabel</span><span class="p">(</span><span class="s2">"UMAP-2"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">legend</span><span class="p">(</span><span class="n">title</span><span class="o">=</span><span class="s2">"Cluster"</span><span class="p">)</span>
<span class="n">plt</span><span class="o">.</span><span class="n">show</span><span class="p">()</span>
</pre></div>
<div id="cell-12" class="clipboard-copy-txt">import seaborn as sns
import matplotlib.pyplot as plt
# Visualize discovered clusters
plt.figure(figsize=(10, 6))
sns.scatterplot(
x=embeddings_umap[:, 0],
y=embeddings_umap[:, 1],
hue=df["cluster"].astype(str),
palette="tab10",
alpha=0.7,
legend="full"
)
plt.title("UMAP Projection Colored by HDBSCAN Clusters")
plt.xlabel("UMAP-1")
plt.ylabel("UMAP-2")
plt.legend(title="Cluster")
plt.show()
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedImage jp-OutputArea-output ">
<img src="data:image/png;base64,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"
class="
"
>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h4 id="reflecting-on-the-number-of-clusters">🪞 Reflecting on the Number of Clusters<a class="anchor-link" href="#reflecting-on-the-number-of-clusters">¶</a></h4><p>Our clustering algorithm (HDBSCAN) identified <strong>7 main clusters</strong> in the semantic space — a relatively low number considering the diversity of the BBC news dataset. Also we see that the clusters are not perfectly separated when looking at the whole dataset at the same time.</p>
<p>This can be both a strength and a limitation:</p>
<ul>
<li>✅ <strong>Strength</strong>: These clusters represent <strong>broad, high-level themes</strong>, giving a clean summary of the corpus.</li>
<li>⚠️ <strong>Limitation</strong>: If we want <strong>finer-grained insights</strong>, like subtopics or emerging trends, we may need to <strong>dive deeper</strong>.</li>
</ul>
<p>👉 That’s one of the main strengths of the full <strong>BERTopic pipeline</strong>:</p>
<ul>
<li>The parametrization is well set to find a good balance between granularity and separation.</li>
<li>To get more clusters, we can either increase the <code>min_cluster_size</code> or the <code>n_components</code> in the UMAP.</li>
</ul>
<p>Now, let’s interpret what each of our current clusters means by <strong>extracting representative keywords</strong> using the <strong>c-TF-IDF</strong> technique — a cornerstone of BERTopic's representation strategy.</p>
<hr />
<h3 id="step-4-topic-representation-using-c-tf-idf">🧠 Step 4: Topic Representation using c-TF-IDF<a class="anchor-link" href="#step-4-topic-representation-using-c-tf-idf">¶</a></h3><p>Once documents are grouped into clusters, the next challenge is:<br />
➡️ <strong>How do we describe each topic?</strong></p>
<p>Instead of simply counting word frequency, BERTopic uses a smarter approach called <strong>class-based TF-IDF (c-TF-IDF)</strong>:</p>
<hr />
<h4 id="what-is-c-tf-idf">🔍 What is c-TF-IDF?<a class="anchor-link" href="#what-is-c-tf-idf">¶</a></h4><p>c-TF-IDF adapts the traditional TF-IDF logic to topic modeling:</p>
<ul>
<li>Imagine each topic is one big document (by concatenating all its documents).</li>
<li>Then, compute the TF-IDF score of words within that “topic-document” relative to all others.</li>
<li>This highlights <strong>keywords that are specific to one topic</strong>, not just common overall.</li>
</ul>
<hr />
<h4 id="why-use-c-tf-idf">📌 Why Use c-TF-IDF?<a class="anchor-link" href="#why-use-c-tf-idf">¶</a></h4><ul>
<li>✅ It captures <strong>topic-specific terminology</strong>.</li>
<li>✅ It works well even for <strong>short texts</strong> (like news headlines).</li>
<li>✅ It’s <strong>unsupervised</strong> and leverages your cluster labels to build meaning.</li>
</ul>
<p>Now let’s compute the top terms per topic using this technique and look at what defines each cluster semantically.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [13]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-13", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">bertopic.vectorizers</span><span class="w"> </span><span class="kn">import</span> <span class="n">ClassTfidfTransformer</span>
<span class="c1"># Step 1: Create pseudo-documents per cluster</span>
<span class="n">docs_per_topic</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">topic</span> <span class="ow">in</span> <span class="nb">set</span><span class="p">(</span><span class="n">clusters</span><span class="p">):</span>
<span class="k">if</span> <span class="n">topic</span> <span class="o">==</span> <span class="o">-</span><span class="mi">1</span><span class="p">:</span>
<span class="k">continue</span> <span class="c1"># Skip outliers</span>
<span class="n">topic_docs</span> <span class="o">=</span> <span class="p">[</span><span class="n">doc</span> <span class="k">for</span> <span class="n">doc</span><span class="p">,</span> <span class="n">label</span> <span class="ow">in</span> <span class="nb">zip</span><span class="p">(</span><span class="n">df</span><span class="p">[</span><span class="s2">"document"</span><span class="p">],</span> <span class="n">clusters</span><span class="p">)</span> <span class="k">if</span> <span class="n">label</span> <span class="o">==</span> <span class="n">topic</span><span class="p">]</span>
<span class="n">docs_per_topic</span><span class="p">[</span><span class="n">topic</span><span class="p">]</span> <span class="o">=</span> <span class="s2">" "</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">topic_docs</span><span class="p">)</span>
<span class="c1"># Step 2: Extract raw vocabulary</span>
<span class="kn">from</span><span class="w"> </span><span class="nn">sklearn.feature_extraction.text</span><span class="w"> </span><span class="kn">import</span> <span class="n">CountVectorizer</span>
<span class="n">vectorizer</span> <span class="o">=</span> <span class="n">CountVectorizer</span><span class="p">(</span><span class="n">stop_words</span><span class="o">=</span><span class="s2">"english"</span><span class="p">)</span>
<span class="n">X</span> <span class="o">=</span> <span class="n">vectorizer</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">docs_per_topic</span><span class="o">.</span><span class="n">values</span><span class="p">())</span>
<span class="c1"># Step 3: Compute c-TF-IDF</span>
<span class="n">ctfidf</span> <span class="o">=</span> <span class="n">ClassTfidfTransformer</span><span class="p">()</span>
<span class="c1"># Fix: Don't pass the document texts as the multiplier</span>
<span class="n">X_ctfidf</span> <span class="o">=</span> <span class="n">ctfidf</span><span class="o">.</span><span class="n">fit_transform</span><span class="p">(</span><span class="n">X</span><span class="p">)</span>
<span class="c1"># Step 4: Get top terms per topic</span>
<span class="k">def</span><span class="w"> </span><span class="nf">get_top_n_words_per_topic</span><span class="p">(</span><span class="n">X_ctfidf</span><span class="p">,</span> <span class="n">vectorizer</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">10</span><span class="p">):</span>
<span class="n">words</span> <span class="o">=</span> <span class="n">vectorizer</span><span class="o">.</span><span class="n">get_feature_names_out</span><span class="p">()</span>
<span class="n">top_words</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">topic_idx</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">X_ctfidf</span><span class="o">.</span><span class="n">shape</span><span class="p">[</span><span class="mi">0</span><span class="p">]):</span>
<span class="n">row</span> <span class="o">=</span> <span class="n">X_ctfidf</span><span class="p">[</span><span class="n">topic_idx</span><span class="p">]</span><span class="o">.</span><span class="n">toarray</span><span class="p">()</span><span class="o">.</span><span class="n">flatten</span><span class="p">()</span>
<span class="n">top_n</span> <span class="o">=</span> <span class="n">row</span><span class="o">.</span><span class="n">argsort</span><span class="p">()[</span><span class="o">-</span><span class="n">n</span><span class="p">:][::</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span>
<span class="n">top_words</span><span class="p">[</span><span class="n">topic_idx</span><span class="p">]</span> <span class="o">=</span> <span class="p">[</span><span class="n">words</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">top_n</span><span class="p">]</span>
<span class="k">return</span> <span class="n">top_words</span>
<span class="n">top_words</span> <span class="o">=</span> <span class="n">get_top_n_words_per_topic</span><span class="p">(</span><span class="n">X_ctfidf</span><span class="p">,</span> <span class="n">vectorizer</span><span class="p">)</span>
<span class="k">for</span> <span class="n">topic</span><span class="p">,</span> <span class="n">words</span> <span class="ow">in</span> <span class="n">top_words</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"🧩 Topic </span><span class="si">{</span><span class="n">topic</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="s1">', '</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="n">words</span><span class="p">)</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
</pre></div>
<div id="cell-13" class="clipboard-copy-txt">from bertopic.vectorizers import ClassTfidfTransformer
# Step 1: Create pseudo-documents per cluster
docs_per_topic = {}
for topic in set(clusters):
if topic == -1:
continue # Skip outliers
topic_docs = [doc for doc, label in zip(df["document"], clusters) if label == topic]
docs_per_topic[topic] = " ".join(topic_docs)
# Step 2: Extract raw vocabulary
from sklearn.feature_extraction.text import CountVectorizer
vectorizer = CountVectorizer(stop_words="english")
X = vectorizer.fit_transform(docs_per_topic.values())
# Step 3: Compute c-TF-IDF
ctfidf = ClassTfidfTransformer()
# Fix: Don't pass the document texts as the multiplier
X_ctfidf = ctfidf.fit_transform(X)
# Step 4: Get top terms per topic
def get_top_n_words_per_topic(X_ctfidf, vectorizer, n=10):
words = vectorizer.get_feature_names_out()
top_words = {}
for topic_idx in range(X_ctfidf.shape[0]):
row = X_ctfidf[topic_idx].toarray().flatten()
top_n = row.argsort()[-n:][::-1]
top_words[topic_idx] = [words[i] for i in top_n]
return top_words
top_words = get_top_n_words_per_topic(X_ctfidf, vectorizer)
for topic, words in top_words.items():
print(f"🧩 Topic {topic}: {', '.join(words)}")</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>🧩 Topic 0: said, mr, government, labour, year, election, new, people, blair, party
🧩 Topic 1: said, people, film, music, new, best, year, mobile, tv, technology
🧩 Topic 2: kenteris, iaaf, doping, drugs, thanou, greek, conte, athletes, test, athens
🧩 Topic 3: race, olympic, indoor, world, champion, holmes, championships, year, european, athens
🧩 Topic 4: open, roddick, seed, set, australian, win, match, final, nadal, tennis
🧩 Topic 5: club, chelsea, united, arsenal, liverpool, league, said, game, manager, football
🧩 Topic 6: england, wales, ireland, rugby, france, nations, game, half, coach, robinson
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h3 id="step-5-naming-topics-with-keywords-or-llm">🏷️ Step 5: Naming Topics with Keywords or LLM<a class="anchor-link" href="#step-5-naming-topics-with-keywords-or-llm">¶</a></h3><p>Now that we’ve extracted <strong>top keywords per topic</strong> using c-TF-IDF, which was used for the first version of BERTopic, the next step is to give each cluster a human-readable name which is possible thanks to the <code>representation_model</code> parameter in BERTopic but most especially because of the LLMs.</p>
<hr />
<h4 id="manual-naming-basic-approach">✏️ Manual Naming (Basic Approach)<a class="anchor-link" href="#manual-naming-basic-approach">¶</a></h4><p>You could simply:</p>
<ul>
<li>Look at the <strong>top 5–10 keywords</strong> per topic.</li>
<li>Assign a <strong>human-readable label</strong> based on those terms.</li>
</ul>
<blockquote>
<p>For example, a cluster with words like <code>economy</code>, <code>stocks</code>, <code>market</code>, <code>inflation</code> → likely represents a topic about <strong>Business & Finance</strong>.</p>
</blockquote>
<hr />
<h4 id="llm-based-naming-optional-smart-approach">🤖 LLM-Based Naming (Optional, Smart Approach)<a class="anchor-link" href="#llm-based-naming-optional-smart-approach">¶</a></h4><p>We can go further and use an LLM (like GPT-4 or Claude) to:</p>
<ul>
<li>Read the keywords + a few sample docs.</li>
<li>Generate a <strong>short, descriptive title</strong> for each cluster.</li>
</ul>
<p>This is what BERTopic does under the hood with <code>representation_model=LiteLLM(...)</code>.</p>
<hr />
<p>Let’s now write a helper function to name our topics automatically by summarizing the top keywords per cluster. Later, we’ll also look at a few sample docs from each cluster for deeper insights.</p>
</div>
</div>
</div>
</div><div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell jp-CodeCell jp-Notebook-cell ">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea">
<div class="jp-InputPrompt jp-InputArea-prompt">In [15]:</div><div class="jp-CodeMirrorEditor jp-Editor jp-InputArea-editor" data-type="inline">
<div class="CodeMirror cm-s-jupyter">
<div class="zeroclipboard-container">
<clipboard-copy for="cell-14", aria-label="Copy to Clipboard">
<div>
<span class="notice" hidden>Copied!</span>
<svg aria-hidden="true" width="20" height="20" viewBox="0 0 16 16" version="1.1" data-view-component="true" class="clipboard-copy-icon">
<path fill="currentColor" fill-rule="evenodd" d="M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z"></path>
<path fill="currentColor" fill-rule="evenodd" d="M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z"></path>
</svg>
</div>
</clipboard-copy>
</div>
<div class="highlight-ipynb hl-python "><pre><span></span><span class="kn">from</span><span class="w"> </span><span class="nn">litellm</span><span class="w"> </span><span class="kn">import</span> <span class="n">completion</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">time</span>
<span class="c1"># Generate a title for each topic</span>
<span class="n">topic_titles</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">topic_id</span><span class="p">,</span> <span class="n">keywords</span> <span class="ow">in</span> <span class="n">top_words</span><span class="o">.</span><span class="n">items</span><span class="p">():</span>
<span class="n">docs</span> <span class="o">=</span> <span class="n">docs_per_topic</span><span class="p">[</span><span class="n">topic_id</span><span class="p">][:</span><span class="mi">5</span><span class="p">]</span> <span class="c1"># take 5 example docs</span>
<span class="c1"># Create a simple prompt with the documents and keywords</span>
<span class="n">prompt</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">"""</span>
<span class="s2"> I have a topic that contains the following documents:</span>
<span class="s2"> </span><span class="si">{</span><span class="n">docs</span><span class="si">}</span>
<span class="s2"> </span>
<span class="s2"> The topic is described by the following keywords: </span><span class="si">{</span><span class="n">keywords</span><span class="si">}</span>
<span class="s2"> </span>
<span class="s2"> Based on the above information, please provide a concise title for this topic.</span>
<span class="s2"> </span>
<span class="s2"> Format:</span>
<span class="s2"> title: <title></span>
<span class="s2"> """</span>
<span class="c1"># Call gpt-4o-mini directly</span>
<span class="n">response</span> <span class="o">=</span> <span class="n">completion</span><span class="p">(</span>
<span class="n">model</span><span class="o">=</span><span class="s2">"gpt-4o-mini"</span><span class="p">,</span>
<span class="n">messages</span><span class="o">=</span><span class="p">[{</span><span class="s2">"role"</span><span class="p">:</span> <span class="s2">"user"</span><span class="p">,</span> <span class="s2">"content"</span><span class="p">:</span> <span class="n">prompt</span><span class="p">}]</span>
<span class="p">)</span>
<span class="c1"># Extract the title</span>
<span class="n">response_text</span> <span class="o">=</span> <span class="n">response</span><span class="o">.</span><span class="n">choices</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span><span class="o">.</span><span class="n">message</span><span class="o">.</span><span class="n">content</span>
<span class="n">title</span> <span class="o">=</span> <span class="n">response_text</span><span class="o">.</span><span class="n">split</span><span class="p">(</span><span class="s2">"title:"</span><span class="p">)[</span><span class="o">-</span><span class="mi">1</span><span class="p">]</span><span class="o">.</span><span class="n">strip</span><span class="p">()</span> <span class="k">if</span> <span class="s2">"title:"</span> <span class="ow">in</span> <span class="n">response_text</span><span class="o">.</span><span class="n">lower</span><span class="p">()</span> <span class="k">else</span> <span class="s2">"Unknown Title"</span>
<span class="n">topic_titles</span><span class="p">[</span><span class="n">topic_id</span><span class="p">]</span> <span class="o">=</span> <span class="n">title</span>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"📌 Topic </span><span class="si">{</span><span class="n">topic_id</span><span class="si">}</span><span class="s2">: </span><span class="si">{</span><span class="n">title</span><span class="si">}</span><span class="s2">"</span><span class="p">)</span>
<span class="c1"># Add delay to avoid rate limits</span>
<span class="n">time</span><span class="o">.</span><span class="n">sleep</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
</pre></div>
<div id="cell-14" class="clipboard-copy-txt">from litellm import completion
import time
# Generate a title for each topic
topic_titles = {}
for topic_id, keywords in top_words.items():
docs = docs_per_topic[topic_id][:5] # take 5 example docs
# Create a simple prompt with the documents and keywords
prompt = f"""
I have a topic that contains the following documents:
{docs}
The topic is described by the following keywords: {keywords}
Based on the above information, please provide a concise title for this topic.
Format:
title: <title>
"""
# Call gpt-4o-mini directly
response = completion(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}]
)
# Extract the title
response_text = response.choices[0].message.content
title = response_text.split("title:")[-1].strip() if "title:" in response_text.lower() else "Unknown Title"
topic_titles[topic_id] = title
print(f"📌 Topic {topic_id}: {title}")
# Add delay to avoid rate limits
time.sleep(3)</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell-outputWrapper">
<div class="jp-Collapser jp-OutputCollapser jp-Cell-outputCollapser">
</div>
<div class="jp-OutputArea jp-Cell-outputArea">
<div class="jp-OutputArea-child">
<div class="jp-OutputPrompt jp-OutputArea-prompt"></div>
<div class="jp-RenderedText jp-OutputArea-output" data-mime-type="text/plain">
<pre>📌 Topic 0: China and the Impact of Government and Elections
📌 Topic 1: "Current Trends in Music and Film Technology"
📌 Topic 2: Greek Athletes and Doping Controversies in Athens
📌 Topic 3: Lewis Holmes: European Indoor World Champion in Athletics
📌 Topic 4: "Australian Open Final: Nadal's Match Victory"
📌 Topic 5: Premier League Football Clubs: Chelsea, United, Arsenal, and Liverpool Insights
📌 Topic 6: "Rugby Nations: Wales and its Place Amongst England, Ireland, and France"
</pre>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
<h2 id="conclusion-bertopic-custom-topic-modeling-uncovered">✅ Conclusion: BERTopic & Custom Topic Modeling Uncovered<a class="anchor-link" href="#conclusion-bertopic-custom-topic-modeling-uncovered">¶</a></h2><p>In this notebook, we explored BERTopic approach to topic modeling:</p>
<hr />
<h3 id="1-using-bertopic-llms-litellm-gpt-4o">🔍 1. Using BERTopic + LLMs (LiteLLM + GPT-4o)<a class="anchor-link" href="#1-using-bertopic-llms-litellm-gpt-4o">¶</a></h3><p>We began by leveraging <a href="https://github.com/MaartenGr/BERTopic"><strong>BERTopic</strong></a>, a high-level, production-ready tool that:</p>
<ul>
<li>Uses <strong>sentence embeddings</strong> and <strong>density-based clustering</strong> (UMAP + HDBSCAN).</li>
<li>Allows easy interpretation of topics through <strong>keyword extraction</strong> and <strong>LLM-generated titles/summaries</strong> via LiteLLM.</li>
</ul>
<p>It enabled us to quickly and meaningfully explore the <strong>BBC News dataset</strong>, generating high-quality clusters and intuitive representations with minimal effort.</p>
<hr />
<h3 id="2-rebuilding-the-pipeline-from-scratch">🔬 2. Rebuilding the Pipeline from Scratch<a class="anchor-link" href="#2-rebuilding-the-pipeline-from-scratch">¶</a></h3><p>Then, we took a deep dive to <strong>understand what BERTopic does under the hood</strong>, step by step:</p>
<ol>
<li>Computed <strong>MiniLM embeddings</strong> of documents.</li>
<li>Applied <strong>PCA + UMAP</strong> for dimensionality reduction.</li>
<li>Used <strong>HDBSCAN</strong> for clustering documents into coherent groups.</li>
<li>Extracted <strong>keywords per cluster</strong> using <code>c-TF-IDF</code>.</li>
<li>Used <strong>GPT-4o via LiteLLM</strong> to generate human-readable <strong>titles</strong>.</li>
</ol>
<hr />
<h3 id="why-it-matters">🧠 Why It Matters<a class="anchor-link" href="#why-it-matters">¶</a></h3><p>This dual approach gave us:</p>
<ul>
<li>A powerful plug-and-play experience with BERTopic.</li>
<li>A deeper understanding of how topic modeling pipelines work, and how we can customize or extend them for our own needs.</li>
</ul>
<p>From quick exploration to full interpretability, <strong>topic modeling + LLMs</strong> form a great toolkit for real-world text mining.</p>
<hr />
<p>Whether you want speed, control, or insight — this notebook sets the foundation for all three.</p>
</div>
</div>
</div>
</div>
<div class="jp-Cell jp-MarkdownCell jp-Notebook-cell">
<div class="jp-Cell-inputWrapper">
<div class="jp-Collapser jp-InputCollapser jp-Cell-inputCollapser">
</div>
<div class="jp-InputArea jp-Cell-inputArea"><div class="jp-InputPrompt jp-InputArea-prompt">
</div><div class="jp-RenderedHTMLCommon jp-RenderedMarkdown jp-MarkdownOutput " data-mime-type="text/markdown">
</div>
</div>
</div>
</div>
</div> <!-- jp-Notebook -->
</div> <!-- jupyter-wrapper -->