Spaces:
Runtime error
Runtime error
| # modules/visualization.py | |
| import matplotlib.pyplot as plt | |
| from wordcloud import WordCloud | |
| from config.settings import WC_WIDTH, WC_HEIGHT, WC_BG_COLOR | |
| def generate_wordcloud(texts: list, save_path: str = "wordcloud.png"): | |
| """ | |
| Generate a word cloud from a list of texts and save as an image. | |
| """ | |
| combined_text = " ".join(texts) | |
| wc = WordCloud( | |
| width=WC_WIDTH, | |
| height=WC_HEIGHT, | |
| background_color=WC_BG_COLOR | |
| ).generate(combined_text) | |
| plt.figure(figsize=(10, 5)) | |
| plt.imshow(wc, interpolation="bilinear") | |
| plt.axis("off") | |
| plt.tight_layout(pad=0) | |
| plt.savefig(save_path) | |
| plt.close() | |
| return save_path | |
| def plot_sentiment_distribution(sentiment_results: list, save_path: str = "sentiment_distribution.png"): | |
| """ | |
| Plot a simple bar chart of sentiment distribution. | |
| """ | |
| labels = [res["label"] for res in sentiment_results if "label" in res] | |
| counts = {label: labels.count(label) for label in set(labels)} | |
| plt.figure(figsize=(6, 4)) | |
| plt.bar(counts.keys(), counts.values(), color=["green", "red", "blue"]) | |
| plt.title("Sentiment Distribution") | |
| plt.xlabel("Sentiment") | |
| plt.ylabel("Count") | |
| plt.savefig(save_path) | |
| plt.close() | |
| return save_path | |