Customer_Review / topic_model.py
maman056's picture
Upload 4 files
ccfa571 verified
Raw
History Blame Contribute Delete
595 Bytes
def get_review_topic(review_text, vectorizer, nmf_model, top_n_words=5):
# Transform the review into TF-IDF space
review_vect = vectorizer.transform([review_text])
# Get topic distribution
topic_probs = nmf_model.transform(review_vect) # shape (1, num_topics)
topic_index = topic_probs.argmax() # pick topic with highest score
# Get top words for that topic
words = vectorizer.get_feature_names_out()
topic_words = [words[j] for j in nmf_model.components_[topic_index].argsort()[-top_n_words:][::-1]]
return ", ".join(topic_words)