项目关键词BERTopic、NMF、电商评论分析、低分评论归因、主题聚类、真实数据集、Python 可视化、HTML 报告、CSDN 源码资源包适用场景NLP 课程设计、电商运营分析、客户反馈挖掘、文本聚类项目、数据分析项目展示、二次开发摘要电商评论分析不能只停留在“好评率、差评率、平均评分”这些表层指标上。真正有业务价值的问题是低分评论集中在什么原因上哪些主题最影响用户体验典型原始评论怎么快速定位结果能不能直接导出为图表和报告。本文基于bertopic_ecommerce_review_analyzer项目使用公开真实数据集Women’s E-Commerce Clothing Reviews的电商服装评论子集重新跑通完整流程。项目会读取真实评论 CSV完成字段标准化、领域词预处理、主题聚类、差评原因归因、CSV 导出、可视化图表和 HTML 报告生成。本文中的运行截图来自项目代码实际执行后的报告页面。本次实测数据包含1470条评论其中570条为 1-2 星低分评论。模型在最小依赖环境下使用TF-IDF NMF兜底后端稳定运行输出8个主题低分评论主导问题为“尺码版型问题”。如果安装 BERTopic 可选依赖项目也保留 BERTopic 后端入口。真实数据与素材来源为了避免只用合成样例本次重新整理了公开真实评论数据。原始数据集来自 Kaggle 的 Women’s E-Commerce Clothing Reviews镜像 CSV 下载自 GitHub 公开仓库项目中保留清洗后的子集demo_data/real_womens_clothing_reviews.csv字段已经统一为review_text、rating、category、product_name、helpful_count等项目可直接读取的列。电商评论中的低评分反馈往往来自真实体验落差尺码不合适、物流等待过长、颜色与图片不符、做工质量不达预期。下面这张来自 Wikimedia Commons 的低评分反馈场景图用来作为业务背景素材和本文后续的真实评论建模结果对应。清洗后的数据分布如下1 星评论193条2 星评论377条3 星评论125条4 星评论231条5 星评论544条。项目默认聚焦 1-2 星评论做差评原因分析因此参与建模的低分评论为570条。项目流程与代码改造项目入口是main.py。为了让真实外部数据不需要手工改列名我增强了prepare_review_dataframe()的字段识别逻辑使它能自动识别Review Text、Rating、Clothing ID、Department Name、Class Name、Recommended IND、Positive Feedback Count等公开数据集字段并转换成项目统一字段。下面的流程示意图对应项目的实际运行链路图内只保留处理节点和必要说明。流程可以理解为六步先读取真实评论数据再把外部字段标准化为项目字段随后进行领域词预处理抽取尺码、物流、质量等业务词模型层完成主题聚类分析层将主题关键词映射为业务差评原因最后导出表格、图表和网页报告。在文本预处理部分项目原本更偏中文电商评论。我补充了英文服装评论常见表达例如fit、size、fabric、material、return、shipping、color、price等并映射到统一业务维度。这样即使真实数据是英文评论输出仍然可以归并成中文业务标签方便写中文项目报告。真实运行截图本次使用最小依赖链路执行命令如下python main.py--datademo_data/real_womens_clothing_reviews.csv--backendnmf --n-topics8python app.py运行完成后浏览器打开outputs/negative_review_report.html。下面这张截图来自本地服务真实打开后的报告首屏可以看到总评论数、参与分析评论数、差评率、主题数、主导差评原因和建模后端。首屏结果说明这不是空报告系统实际读入1470条评论筛选570条低分评论参与建模低分率为38.78%主题数为8主导差评原因识别为“尺码版型问题”。继续向下滚动报告会展示评分分布、差评原因排行、主题数量分布和主题关键词表。下面这张长截图覆盖了核心图表区域。从图表可以看到真实服装评论里 1-2 星低分并不少且“尺码版型问题”明显高于其他差评原因。这和服饰电商的业务直觉一致低分评论往往不是单纯情绪差而是围绕尺码偏差、穿着舒适度、版型不合身、图片与实物差异等具体体验问题展开。主题建模与差评归因项目采用“双后端”设计。安装 BERTopic 及其依赖时可以尝试 BERTopic 后端在没有 BERTopic、不能联网下载模型、或者 Windows 环境不方便编译依赖时会自动使用TF-IDF NMF兜底后端。两种后端输出统一后续业务归因和报告生成不需要改代码。差评归因不是直接把主题编号展示给用户而是把主题关键词和典型评论映射成业务标签。下面的示意图展示了从低分评论到业务原因汇总的逻辑。具体实现上src/topic_model.py负责训练主题模型并输出topic_id、关键词和文档主题得分src/analyzer.py根据关键词和代表评论匹配业务规则生成“尺码版型问题、物流配送问题、色差外观问题、商品质量问题”等标签src/report.py再把结果组织成 HTML 报告。本次真实运行的核心指标如下{total_reviews:1470,analyzed_reviews:570,negative_rate:0.3878,topic_count:8,dominant_negative_reason:尺码版型问题,backend:fallback_nmf,topic_diversity:0.225,silhouette_cosine:0.2965}这里的fallback_nmf是正式可运行的兜底后端目的是保证源码包在最小依赖环境中也能复现结果。对于课程设计和 CSDN 资源包来说能稳定一键运行比强制依赖重型模型更实用。结果解读与输出文件评分分布图展示了真实数据子集中不同星级评论的数量。它可以帮助我们确认数据不是刻意构造的单一差评集合而是包含低分、中评和高分的真实评论样本。低分评论筛选后系统将主题结果汇总为差评原因。下图中“尺码版型问题”占比最高其次是“物流配送问题”“色差外观问题”和“商品质量问题”。这张图适合直接放在运营分析报告里它把模型主题转换成了业务人员能读懂的原因排行。比如服装电商看到“尺码版型问题”占比过高就可以进一步检查尺码表、买家秀、模特参数、试穿建议和退换货说明。主题分布图保留了topic_id适合开发者和分析人员追踪每个主题簇的规模。主题关键词表把主题编号、业务标签、评论数量、平均评分和关键词放在一张图里。它适合在博客里解释“模型为什么把这一组评论归为某类问题”。运行后生成的核心文件包括outputs/topic_summary.csv outputs/negative_reason_summary.csv outputs/review_topic_assignments.csv outputs/evaluation_metrics.json outputs/negative_review_report.html images/results/review_analysis_dashboard.png images/results/screenshot_report_top.png images/results/screenshot_report_long.png models/topic_model.joblib logs/run_log.txt这些文件覆盖了“明细结果、汇总结果、指标记录、可视化图、网页报告、模型产物和运行日志”适合作为课程设计、项目验收或资源包交付材料。复现方法与资源包说明最小依赖安装pipinstall-rrequirements.txt使用真实评论子集运行python main.py--datademo_data/real_womens_clothing_reviews.csv--backendnmf --n-topics8启动报告服务python app.py如果想尝试 BERTopic 后端可以额外安装pipinstall-rrequirements-bertopic.txt python main.py--datademo_data/real_womens_clothing_reviews.csv--backendauto资源包中包含源码、配置文件、清洗后的真实评论子集、演示数据、运行脚本、验证说明、输出图表和 README。拿到源码后即使当前环境没有 BERTopic也可以先用 NMF 兜底后端复现本文截图中的核心结果。扩展方向与参考资料这个项目可以继续扩展成更完整的评论分析系统。第一可以把差评原因按商品、类目、品牌拆分输出每个商品的 Top 问题第二可以加入时间字段做趋势分析观察某类问题是否近期集中爆发第三可以接入中文电商评论数据继续扩展中文领域词典第四可以在 BERTopic 后端中加入多语言句向量模型提升语义聚类能力。参考资料BERTopic 官方文档https://maartengr.github.io/BERTopic/BERTopic c-TF-IDF 说明https://maartengr.github.io/BERTopic/getting_started/ctfidf/ctfidf.htmlscikit-learn NMF/LDA topic extractionhttps://scikit-learn.org/stable/auto_examples/applications/plot_topics_extraction_with_nmf_lda.htmlWomen’s E-Commerce Clothing Reviewshttps://www.kaggle.com/datasets/nicapotato/womens-ecommerce-clothing-reviews数据集镜像仓库https://github.com/chandimap/Sentiment-Analysis-of-Women-s-E-Commerce-Clothing-ReviewsWikimedia Commons 低评分反馈图https://commons.wikimedia.org/wiki/File:Reviews_of_a_Negative_Customer_Experience.jpg
基于 BERTopic 的电商评论主题聚类与差评原因分析系统实战
项目关键词BERTopic、NMF、电商评论分析、低分评论归因、主题聚类、真实数据集、Python 可视化、HTML 报告、CSDN 源码资源包适用场景NLP 课程设计、电商运营分析、客户反馈挖掘、文本聚类项目、数据分析项目展示、二次开发摘要电商评论分析不能只停留在“好评率、差评率、平均评分”这些表层指标上。真正有业务价值的问题是低分评论集中在什么原因上哪些主题最影响用户体验典型原始评论怎么快速定位结果能不能直接导出为图表和报告。本文基于bertopic_ecommerce_review_analyzer项目使用公开真实数据集Women’s E-Commerce Clothing Reviews的电商服装评论子集重新跑通完整流程。项目会读取真实评论 CSV完成字段标准化、领域词预处理、主题聚类、差评原因归因、CSV 导出、可视化图表和 HTML 报告生成。本文中的运行截图来自项目代码实际执行后的报告页面。本次实测数据包含1470条评论其中570条为 1-2 星低分评论。模型在最小依赖环境下使用TF-IDF NMF兜底后端稳定运行输出8个主题低分评论主导问题为“尺码版型问题”。如果安装 BERTopic 可选依赖项目也保留 BERTopic 后端入口。真实数据与素材来源为了避免只用合成样例本次重新整理了公开真实评论数据。原始数据集来自 Kaggle 的 Women’s E-Commerce Clothing Reviews镜像 CSV 下载自 GitHub 公开仓库项目中保留清洗后的子集demo_data/real_womens_clothing_reviews.csv字段已经统一为review_text、rating、category、product_name、helpful_count等项目可直接读取的列。电商评论中的低评分反馈往往来自真实体验落差尺码不合适、物流等待过长、颜色与图片不符、做工质量不达预期。下面这张来自 Wikimedia Commons 的低评分反馈场景图用来作为业务背景素材和本文后续的真实评论建模结果对应。清洗后的数据分布如下1 星评论193条2 星评论377条3 星评论125条4 星评论231条5 星评论544条。项目默认聚焦 1-2 星评论做差评原因分析因此参与建模的低分评论为570条。项目流程与代码改造项目入口是main.py。为了让真实外部数据不需要手工改列名我增强了prepare_review_dataframe()的字段识别逻辑使它能自动识别Review Text、Rating、Clothing ID、Department Name、Class Name、Recommended IND、Positive Feedback Count等公开数据集字段并转换成项目统一字段。下面的流程示意图对应项目的实际运行链路图内只保留处理节点和必要说明。流程可以理解为六步先读取真实评论数据再把外部字段标准化为项目字段随后进行领域词预处理抽取尺码、物流、质量等业务词模型层完成主题聚类分析层将主题关键词映射为业务差评原因最后导出表格、图表和网页报告。在文本预处理部分项目原本更偏中文电商评论。我补充了英文服装评论常见表达例如fit、size、fabric、material、return、shipping、color、price等并映射到统一业务维度。这样即使真实数据是英文评论输出仍然可以归并成中文业务标签方便写中文项目报告。真实运行截图本次使用最小依赖链路执行命令如下python main.py--datademo_data/real_womens_clothing_reviews.csv--backendnmf --n-topics8python app.py运行完成后浏览器打开outputs/negative_review_report.html。下面这张截图来自本地服务真实打开后的报告首屏可以看到总评论数、参与分析评论数、差评率、主题数、主导差评原因和建模后端。首屏结果说明这不是空报告系统实际读入1470条评论筛选570条低分评论参与建模低分率为38.78%主题数为8主导差评原因识别为“尺码版型问题”。继续向下滚动报告会展示评分分布、差评原因排行、主题数量分布和主题关键词表。下面这张长截图覆盖了核心图表区域。从图表可以看到真实服装评论里 1-2 星低分并不少且“尺码版型问题”明显高于其他差评原因。这和服饰电商的业务直觉一致低分评论往往不是单纯情绪差而是围绕尺码偏差、穿着舒适度、版型不合身、图片与实物差异等具体体验问题展开。主题建模与差评归因项目采用“双后端”设计。安装 BERTopic 及其依赖时可以尝试 BERTopic 后端在没有 BERTopic、不能联网下载模型、或者 Windows 环境不方便编译依赖时会自动使用TF-IDF NMF兜底后端。两种后端输出统一后续业务归因和报告生成不需要改代码。差评归因不是直接把主题编号展示给用户而是把主题关键词和典型评论映射成业务标签。下面的示意图展示了从低分评论到业务原因汇总的逻辑。具体实现上src/topic_model.py负责训练主题模型并输出topic_id、关键词和文档主题得分src/analyzer.py根据关键词和代表评论匹配业务规则生成“尺码版型问题、物流配送问题、色差外观问题、商品质量问题”等标签src/report.py再把结果组织成 HTML 报告。本次真实运行的核心指标如下{total_reviews:1470,analyzed_reviews:570,negative_rate:0.3878,topic_count:8,dominant_negative_reason:尺码版型问题,backend:fallback_nmf,topic_diversity:0.225,silhouette_cosine:0.2965}这里的fallback_nmf是正式可运行的兜底后端目的是保证源码包在最小依赖环境中也能复现结果。对于课程设计和 CSDN 资源包来说能稳定一键运行比强制依赖重型模型更实用。结果解读与输出文件评分分布图展示了真实数据子集中不同星级评论的数量。它可以帮助我们确认数据不是刻意构造的单一差评集合而是包含低分、中评和高分的真实评论样本。低分评论筛选后系统将主题结果汇总为差评原因。下图中“尺码版型问题”占比最高其次是“物流配送问题”“色差外观问题”和“商品质量问题”。这张图适合直接放在运营分析报告里它把模型主题转换成了业务人员能读懂的原因排行。比如服装电商看到“尺码版型问题”占比过高就可以进一步检查尺码表、买家秀、模特参数、试穿建议和退换货说明。主题分布图保留了topic_id适合开发者和分析人员追踪每个主题簇的规模。主题关键词表把主题编号、业务标签、评论数量、平均评分和关键词放在一张图里。它适合在博客里解释“模型为什么把这一组评论归为某类问题”。运行后生成的核心文件包括outputs/topic_summary.csv outputs/negative_reason_summary.csv outputs/review_topic_assignments.csv outputs/evaluation_metrics.json outputs/negative_review_report.html images/results/review_analysis_dashboard.png images/results/screenshot_report_top.png images/results/screenshot_report_long.png models/topic_model.joblib logs/run_log.txt这些文件覆盖了“明细结果、汇总结果、指标记录、可视化图、网页报告、模型产物和运行日志”适合作为课程设计、项目验收或资源包交付材料。复现方法与资源包说明最小依赖安装pipinstall-rrequirements.txt使用真实评论子集运行python main.py--datademo_data/real_womens_clothing_reviews.csv--backendnmf --n-topics8启动报告服务python app.py如果想尝试 BERTopic 后端可以额外安装pipinstall-rrequirements-bertopic.txt python main.py--datademo_data/real_womens_clothing_reviews.csv--backendauto资源包中包含源码、配置文件、清洗后的真实评论子集、演示数据、运行脚本、验证说明、输出图表和 README。拿到源码后即使当前环境没有 BERTopic也可以先用 NMF 兜底后端复现本文截图中的核心结果。扩展方向与参考资料这个项目可以继续扩展成更完整的评论分析系统。第一可以把差评原因按商品、类目、品牌拆分输出每个商品的 Top 问题第二可以加入时间字段做趋势分析观察某类问题是否近期集中爆发第三可以接入中文电商评论数据继续扩展中文领域词典第四可以在 BERTopic 后端中加入多语言句向量模型提升语义聚类能力。参考资料BERTopic 官方文档https://maartengr.github.io/BERTopic/BERTopic c-TF-IDF 说明https://maartengr.github.io/BERTopic/getting_started/ctfidf/ctfidf.htmlscikit-learn NMF/LDA topic extractionhttps://scikit-learn.org/stable/auto_examples/applications/plot_topics_extraction_with_nmf_lda.htmlWomen’s E-Commerce Clothing Reviewshttps://www.kaggle.com/datasets/nicapotato/womens-ecommerce-clothing-reviews数据集镜像仓库https://github.com/chandimap/Sentiment-Analysis-of-Women-s-E-Commerce-Clothing-ReviewsWikimedia Commons 低评分反馈图https://commons.wikimedia.org/wiki/File:Reviews_of_a_Negative_Customer_Experience.jpg