书籍章节情感分析的情感弧可视化方案优化问询
书籍章节情感弧的可视化优化方案
针对书籍章节情感分析后的情感弧可视化,你当前仅绘制单一情感维度的思路虽然可行,但可以通过以下几种方式更全面、直观地展示情感变化及跳转速度:
1. 同时展示消极、中性、积极三维情感变化
直接对比三个维度的折线走势,能清晰看到章节间情感结构的此消彼长——比如悲伤章节消极占比飙升、乐观章节积极占比拉高、中性章节主导的情况都能一目了然:
import matplotlib.pyplot as plt import pandas as pd # 假设D是存储章节情感得分的字典,键为章节标识,值为polarity_scores返回的结果 df = pd.DataFrame.from_dict(D, orient='index') plt.figure(figsize=(12, 6)) plt.plot(df.index, df['neg'], label='消极情感', color='crimson') plt.plot(df.index, df['neu'], label='中性情感', color='dimgray') plt.plot(df.index, df['pos'], label='积极情感', color='forestgreen') plt.xlabel('章节') plt.ylabel('情感占比') plt.title('书籍章节情感弧变化') plt.legend() plt.xticks(rotation=45) plt.tight_layout() plt.show()
2. 基于综合得分(compound)展示整体情感趋势
compound是NLTK给出的综合情感得分,范围从-1(极度消极)到1(极度积极),用它绘制折线能直接捕捉整体情感的起伏幅度,最适合观察情感跳转的速度:
plt.figure(figsize=(12, 6)) plt.plot(df.index, df['compound'], label='综合情感得分', color='royalblue', linewidth=2) # 添加0基准线,快速区分正负情感区间 plt.axhline(y=0, color='black', linestyle='--') plt.xlabel('章节') plt.ylabel('综合情感得分') plt.title('书籍章节整体情感趋势') plt.legend() plt.xticks(rotation=45) plt.tight_layout() plt.show()
3. 用面积图展示情感占比的动态分布
面积图能直观呈现单章节内三种情感的占比结构,结合章节顺序可以看到情感结构的演变过程,比单纯的折线图更有视觉冲击力:
plt.figure(figsize=(12, 6)) plt.stackplot(df.index, df['neg'], df['neu'], df['pos'], labels=['消极', '中性', '积极'], colors=['crimson', 'dimgray', 'forestgreen']) plt.xlabel('章节') plt.ylabel('情感占比') plt.title('书籍章节情感占比动态分布') plt.legend(loc='upper left') plt.xticks(rotation=45) plt.tight_layout() plt.show()
这些方案各有侧重:多维度折线适合对比情感结构变化,综合得分折线适合快速把握整体情感起伏,面积图适合展示情感占比的动态演变,你可以根据需求选择或组合使用。
内容的提问来源于stack exchange,提问作者johnnydoe
相关产品推荐
相关产品推荐

