import pandas as pd from turftopic import KeyNMF def get_topics(sample, text_col, k:int=None): sample_queries = sample[text_col].tolist() # Initialize KeyNMF with the desired number of topics model = KeyNMF(n_components='auto') if k is None else KeyNMF(n_components=k) out = model.fit_transform(sample_queries) return pd.concat([sample.reset_index(drop=True), pd.DataFrame(out).reset_index(drop=True)], axis=1), model