scripts/cluster_themes.py:
- Berechnet Embeddings je Theme (label + description), single-linkage Clustering
ueber Cosinus-Schwelle (default 0.55) ueber Podcast-Grenzen hinweg.
- Output: data/theme_clusters.json mit Cluster-Liste, je Cluster Mitglieder
(podcast_id, theme_id, label) und Cross-Flag.
Backend:
- /api/analyses/cross-themes: liefert die Cluster-Datei aus.
Frontend (CrossMindmapView):
- Force-Graph mit zwei Podcast-Hubs (links/rechts), je Themen radial drumherum,
Cross-Cluster-Member als gestrichelte gelbe Verbindungslinien mit Cluster-Label.
- Panel: Cross-Cluster oben (klickbar zur Episode), Solo-Cluster darunter.
- Klick auf Theme oeffnet den jeweiligen Podcast.
- 'Cross-Mindmap'-Button im Selector.
Initiales Cluster-Ergebnis: 13 Cluster aus 14 Themen, 1 Cross-Cluster
('Trump-USA' x 'Plattformmacht/Debattenkultur').
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>