import numpy as np import pandas as pd from sentence_transformers import SentenceTransformer from turftopic import KeyNMF # Create corpus from text summaries (not original texts) corpus = list(summary_df["summary"]) # Collect key points by segmenting at double line breaks points = [] for doc in corpus: _points = doc.split("\n\n") doc_points = [p for p in _points if len(p.strip().removeprefix(" - "))] points.extend(doc_points) # Tell KeyNMF to automatically detect the number of topics using BIC model = KeyNMF("auto", encoder="paraphrase-mpnet-base-v2") doc_topic = model.fit_transform(points) # Print topic IDs with top words model.print_topics()