
一、项目背景近年来直播带货、短视频种草、社交裂变等新电商模式迅速发展成为电商行业新的增长引擎。与传统货架电商相比新电商具有更强的互动性和内容驱动特征用户可以在直播间实时互动下单也可以通过短视频了解产品后直接购买。然而新电商的快速发展也带来了新的挑战多平台数据分散商家难以全面掌握经营状况用户评论中蕴含着大量有价值的信息但人工分析效率低下直播带货与短视频的效果如何量化评估仍是决策中的痛点。针对上述问题我基于Kaggle公开电商销售数据集、LSEC直播电商数据集以及B站爬取的视频数据利用Python生态中的Pandas、scikit-learn、Streamlit等工具构建了一套新电商智能分析决策系统。技术栈Python 3.9 | Streamlit | Pandas | Scikit-learn | Jieba | Plotly | DeepSeek API二、系统架构系统采用分层架构设计分为数据层、业务逻辑层和表示层三个层次。数据层负责原始数据的存储与读取包含了商品数据、评论数据、销售趋势数据以及新电商特色的直播、短视频、社交裂变、达人和弹幕等八个数据文件。业务逻辑层是系统的核心封装了数据处理、情感分析、销量预测、统计检验和AI智能分析等关键算法模块每个模块以独立的形式存在便于单独测试和维护。表示层基于Streamlit框架构建负责与用户进行交互接收用户的操作指令并调用业务逻辑层完成计算最后将结果以图表、表格或文本的形式呈现给用户。项目目录结构如下所示主应用文件app.py是Streamlit的入口约1500行代码。数据文件统一存放在data/raw目录下核心业务逻辑代码封装在src目录下其中data_processing子目录负责数据的加载、清洗、特征工程和标准化models子目录包含了情感分析、销量预测、统计检验和AI智能分析等模块visualization子目录统一管理所有图表绘制函数。系统架构图如下所示数据从底层的数据文件向上流向业务逻辑层各模块经过处理后最终汇聚到表示层呈现给用户层与层之间职责明确、流向清晰。三、数据获取与处理3.1 数据来源系统整合了三个不同来源的真实数据集。第一个来源是Kaggle公开电商销售数据集涵盖订单ID、订单日期、商品名称、品类、子品类、单价、销量、销售额及支付方式等关键字段经过数据提取与转换系统从中整理出3835个不同商品的完整信息。第二个来源是LSEC直播电商数据集由京东AI研究院公开发布以TSV格式存储了用户ID、商品ID和购买次数的三元组交互记录共处理了632个商品为直播带货分析模块提供了真实购买行为数据支撑。第三个来源是B站公开API系统爬取了热门视频的播放量、点赞数和弹幕数等互动数据共计3256条记录为短视频分析模块提供了真实的用户互动素材。数据获取与探索流程图如下所示三路数据并行进入数据处理模块统一处理随后依次经过数据清洗、特征工程和Z-score标准化三个环节最终输出标准化的数据集。3.2 数据加载数据加载由数据处理模块统一管理。该模块会自动定位项目目录下的数据文件夹路径通过pandas的read_csv函数直接读取商品、评论和销售趋势三个核心数据文件并存储为DataFrame格式。加载完成后按顺序触发完整的数据清洗、特征工程和标准化流程。数据加载的核心代码如下import pandas as pd import os class DataProcessor: def __init__(self, data_dirNone): base os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) self.data_dir os.path.join(base, data, raw) def load_data(self): self.products_df pd.read_csv( os.path.join(self.data_dir, products_crawled.csv), encodingutf-8-sig ) self.reviews_df pd.read_csv( os.path.join(self.data_dir, reviews_crawled.csv), encodingutf-8-sig ) self.sales_df pd.read_csv( os.path.join(self.data_dir, sales_trend.csv), encodingutf-8-sig ) return self3.3 数据清洗数据清洗是确保模型质量的前提。系统针对不同数据表的特点执行了差异化的清洗策略。对于商品表主要操作是删除重复的商品记录并对促销类型字段中的缺失值统一填充为无促销。对于评论表系统先删除了重复的评论记录然后剔除了评论内容为空或仅包含无意义字符串的记录在此过程中使用了pandas的向量化操作来替代低效的逐行处理方式。对于销售趋势表清洗工作主要是将日期列转换为标准的日期时间格式并删除销量或收入为空的无效记录。数据清洗的核心代码如下def clean_data(self): # 商品表删除重复商品 self.products_df self.products_df.drop_duplicates(subset[product_id]) # 商品表填充缺失值 self.products_df[promotion_type] self.products_df[promotion_type].fillna(无促销) # 评论表删除重复评论 self.reviews_df self.reviews_df.drop_duplicates(subset[review_id]) # 评论表过滤空文本向量化操作 self.reviews_df self.reviews_df[ self.reviews_df[review_text].str.len() 3 ] invalid_texts [nan, null, ] self.reviews_df self.reviews_df[ ~self.reviews_df[review_text].str.lower().isin(invalid_texts) ] # 销售趋势表日期格式转换 self.sales_df[date] pd.to_datetime(self.sales_df[date]) # 销售趋势表删除空记录 self.sales_df self.sales_df.dropna(subset[daily_sales, daily_revenue]) return self3.4 特征工程特征工程旨在从原始数据中构造出更具预测能力的解释变量。系统从商品维度、评论聚合维度和销售聚合维度三个方面构造了丰富的特征集。在商品维度通过匹配满减、限时、半价等关键词生成了促销标记同时将是否直播和是否视频营销转换为数值型的0/1标记。在评论维度按商品进行分组聚合计算了每个商品的平均评分、总点赞数和实际评论数。在销售维度同样按商品分组统计了30天总销量、日均销量、日销量标准差以及平均直播时长并进一步计算了变异系数以衡量销量的波动程度。最后通过数据合并操作将上述聚合特征整合到商品主数据中并对合并过程中产生的缺失值进行了合理填充。特征工程的核心代码如下def feature_engineering(self): # 商品维度特征 self.products_df[has_promotion] ( self.products_df[promotion_type] .str.contains(满减|限时|半价|新人|买赠|秒杀, naFalse) .astype(int) ) self.products_df[is_live_numeric] ( self.products_df[is_live_streaming].map({是: 1, 否: 0}) ) # 评论维度聚合 r_agg self.reviews_df.groupby(product_id, sortFalse).agg( avg_review_rating(rating, mean), total_likes(likes_count, sum), review_count_actual(review_id, count), ).reset_index() # 销售维度聚合 s_agg self.sales_df.groupby(product_id, sortFalse).agg( total_sales_30d(daily_sales, sum), avg_daily_sales(daily_sales, mean), std_daily_sales(daily_sales, std), total_revenue_30d(daily_revenue, sum), avg_live_hours(live_streaming_hours, mean), ).reset_index() s_agg[sales_cv] s_agg[std_daily_sales] / (s_agg[avg_daily_sales] 1) # 合并特征 self.merged_df self.products_df.merge(r_agg, onproduct_id, howleft) self.merged_df self.merged_df.merge(s_agg, onproduct_id, howleft) return self数据处理与特征工程流程图如下所示三个并行的清洗分支汇聚后进入特征工程模块并行构造三类特征随后通过数据合并将所有特征整合再经过Z-score标准化输出完整数据集。3.5 数据标准化由于不同特征的量纲和数值范围差异较大为避免模型训练时偏向于数值较大的特征系统使用StandardScaler对选取的数值型特征进行了Z-score标准化处理。该操作使得每个特征的数据分布变为均值为0、标准差为1从而消除了量纲影响。标准化后的新特征列在原列名基础上添加了_norm后缀并最终合并回主数据中供后续的模型训练使用。from sklearn.preprocessing import StandardScaler def standardize_data(self): num_cols [price, rating, reviews_count, sales_volume] scaler StandardScaler() scaled scaler.fit_transform(self.merged_df[num_cols]) for i, col in enumerate(num_cols): self.merged_df[f{col}_norm] scaled[:, i] return self四、评论情感分析4.1 情感分析方法评论情感分析是系统的重要功能模块之一基于jieba分词工具对评论文本进行精确切词并利用内置的正面情感词典包含好、棒、赞、满意、实惠等60余个词汇和负面情感词典包含差、烂、失望、退货、破损等80余个词汇进行词频统计。同时算法还考虑了不、没、无等否定词以及非常、特别、很、有点等程度副词对情感极性的修饰与反转作用最终综合计算出一条评论的情感得分范围在-1极度负面到1极度正面之间。情感关键词提取功能分别提取正面和负面评论中的TOP15关键词过滤掉无实际意义的停用词后返回出现频率最高的关键词。若筛选出的关键词少于3个系统会自动退回到普通词频统计模式确保分析结果始终有内容可展示。情感分析流程图如下所示从评论文本输入开始经过jieba分词后并行进入正面匹配和负面匹配两个分支汇合后进入否定词与程度副词检测环节随后计算情感得分并分类最终进入可视化展示阶段。情感分析的核心代码如下import jieba class SentimentAnalyzer: def __init__(self): self.positive_words {好, 棒, 赞, 满意, 推荐, 实惠, 耐用} self.negative_words {差, 烂, 失望, 退货, 破损, 瑕疵, 色差} self.negation_words {不, 没, 无} self.adverb_words {非常: 1.5, 特别: 1.4, 很: 1.2, 有点: 0.7} def analyze_single(self, text): words jieba.lcut(text) pos_score, neg_score 0, 0 negate False for word in words: if word in self.negation_words: negate True continue weight 1 if word in self.adverb_words: weight self.adverb_words[word] if word in self.positive_words: pos_score weight * (-1 if negate else 1) negate False elif word in self.negative_words: neg_score weight * (-1 if negate else 1) negate False total pos_score neg_score return max(-1, min(1, total))4.2 分析结果展示在系统的评论洞察页面以直观的卡片和图表形式展示了分析成果包括评论总数3835条、平均情感得分0.51和正面评价占比56.3%三个关键指标情感分布饼图正面占56.3%、中性占42.3%、负面占1.41%情感得分分布直方图以及正面关键词TOP15和负面关键词TOP15柱状图。底部提供评论详情展开区支持按情感类型筛选查看具体评论文本、评分和情感得分。五、销量预测模型5.1 模型选择销量预测本质上是一个典型的回归问题。本系统选择随机森林作为核心预测模型主要基于其出色的鲁棒性和泛化能力。随机森林通过Bootstrap抽样生成多个不同的训练子集在每个子集上独立训练决策树最后取所有树的平均值作为预测结果能够有效降低过拟合风险同时天然支持混合类型的特征输入并输出特征重要性排序。5.2 特征准备模型的特征准备阶段从处理好的数据集中提取模型输入特征包含价格、评分、评论数、是否直播、是否促销、品类编码、平台编码、平均评分、总点赞数以及平均直播时长等。系统会动态检测数据集中实际存在的列并对可能存在的缺失值采用中位数填充策略。5.3 模型训练与评估模型训练采用标准流程将数据按80%训练集和20%测试集的比例进行随机划分。为了寻找最优的超参数组合系统采用网格搜索策略参数空间包括树的数量、最大深度、内部节点再划分所需最小样本数和叶子节点最少样本数并采用3折交叉验证以R²分数作为评价标准。搜索完成后使用最佳参数组合训练最终模型并输出特征重要性排序。模型评估指标包括R²测试集0.7169、CV R²3折交叉验证0.7215、RMSE1.5和MAE0.2。销量预测模型训练流程图如下所示从特征和目标变量的准备开始经过数据划分后进入网格搜索与交叉验证环节随后训练最优模型并评估最终输出特征重要性排序并用于交互式预测。模型训练的核心代码如下from sklearn.ensemble import RandomForestRegressor from sklearn.model_selection import train_test_split, GridSearchCV from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score import numpy as np class SalesPredictor: def prepare_features(self, df): feature_cols [price, rating, reviews_count, is_live_numeric, has_promotion, category_encoded, platform_encoded] X df[feature_cols].fillna(df[feature_cols].median()) y df[sales_volume] return X, y def train(self, X, y): X_train, X_test, y_train, y_test train_test_split( X, y, test_size0.2, random_state42 ) param_grid { n_estimators: [100], max_depth: [10, 15], min_samples_split: [5], min_samples_leaf: [2], } rf RandomForestRegressor(random_state42, n_jobs-1) grid GridSearchCV(rf, param_grid, cv3, scoringr2, n_jobs-1) grid.fit(X_train, y_train) self.model grid.best_estimator_ y_pred self.model.predict(X_test) self.metrics { r2: r2_score(y_test, y_pred), rmse: np.sqrt(mean_squared_error(y_test, y_pred)), mae: mean_absolute_error(y_test, y_pred), } self.feature_importance dict(zip(X.columns, self.model.feature_importances_)) return self5.4 模型预测界面在模型预测页面系统展示评估指标卡片、特征重要性排序图、预测值与实际值散点图以及交互式预测区域。用户调整价格、评分、直播、促销、类目、平台、直播时长等参数后系统实时输出预估月销量和预估月营收。交互式预测的核心代码如下def predict_single(self, features): X_input pd.DataFrame([features]) X_input X_input.fillna(X_input.median()) return self.model.predict(X_input)[0]六、统计检验统计检验模块利用scipy.stats库为分析结论提供统计学支撑集成了四种常用的假设检验方法。独立样本t检验用于检验直播带货组与非直播组的销量均值是否存在显著差异先通过Levene检验判断方差齐性若方差不齐则采用Welch t检验。单因素方差分析用于检验不同电商平台间的商品评分是否存在显著差异要求每个平台至少有3个样本才参与计算。相关性检验同时计算Pearson相关系数和Spearman秩相关系数。卡方检验用于检验是否直播带货与是否参与促销两个类别变量之间是否存在关联。统计检验流程图如下所示从数据集出发并行进入四个分支各分支独立完成统计计算后汇聚到结果汇总表。独立样本t检验的核心代码如下from scipy import stats def t_test(self, df): live_sales df[df[is_live_numeric] 1][sales_volume] normal_sales df[df[is_live_numeric] 0][sales_volume] levene_stat, levene_p stats.levene(live_sales, normal_sales) equal_var levene_p 0.05 t_stat, t_p stats.ttest_ind(live_sales, normal_sales, equal_varequal_var) return { 检验类型: 独立样本t检验, t统计量: t_stat, p值: t_p, 显著性: 显著 if t_p 0.05 else 不显著, 直播组均值: live_sales.mean(), 非直播组均值: normal_sales.mean() }在统计检验页面系统依次展示四项检验结果Welch t检验p0.0000直播与非直播销量存在显著差异、ANOVA方差分析p0.0924不同平台间评分无显著差异、价格-销量相关性检验Pearson r-0.1256p0.0000显著负相关、Mann-Whitney U检验p0.0000促销对销量有显著影响。页面下方展示特征相关性热力图和检验结果汇总表格。七、新电商特色分析新电商特色页面是本系统区别于传统电商分析工具的核心亮点通过五个Tab页分别展示直播带货、短视频种草、社交裂变、达人画像和弹幕互动五个新电商核心场景。直播带货Tab页展示直播场次1860场、累计GMV18894.2万、平均客单价¥89和平均转化率5.2%四个指标卡片以及TOP10主播GMV排行柱状图展示疯狂小杨哥、辛巴、交个朋友、李佳琦、董宇辉等头部主播的GMV表现。短视频种草Tab页展示视频总数、累计播放和累计点赞三个指标视频类型分布饼图教程分享、开箱测评、品牌故事、产品种草以及各平台完播率箱线图。社交裂变Tab页展示社交商品数100个、平均K因子0.176和社交占比17%三个指标K因子分布直方图和TOP10裂变商品排行。K因子≥0.15的商品可称为社交爆品通过分享机制实现低成本获客。达人画像Tab页展示达人总数50位、月总GMV14.2千万和头部占比32%三个指标达人等级分布饼图、各品类达人GMV柱状图和达人综合实力榜表格。头部达人贡献约60%GMV头部效应显著。弹幕互动Tab页展示弹幕总数500条、下单相关49%和正面弹幕占比三个指标弹幕情感分布饼图、下单意向占比环形图和弹幕内容样本表格。买买买已下单等弹幕可触发从众效应弹幕密度与GMV具有显著正相关。八、AI智能分析AI智能分析页面通过三个Tab页分别展示RAG智能问答、知识库管理和智能体分析三大功能。RAG智能问答提供基于电商知识库与大模型API的智能问答系统用户输入问题后系统先从知识库中检索相关知识作为上下文再调用大模型API生成增强分析结果。知识库管理展示了知识库内容概览商品4467件、评论3835条、直播商品1860件、促销商品632件、品类11个大类、平台4个和技术方案sentence-transformers向量化、余弦相似度检索、语义搜索关键词搜索双引擎、DeepSeek-V3大模型并提供加载重建与搜索测试功能。智能体分析展示了智能数据分析代理的三大能力意图识别、工具调用和结果整合用户选择分析任务后智能体自动调用相应工具生成分析报告。AI智能分析流程图如下所示从用户输入问题开始判断是否启用大模型。若不启用则直接返回基于真实数据的统计摘要若启用则进入知识库检索根据向量检索是否可用分别走语义向量检索或关键词检索两条路径检索结果与用户问题共同构建Prompt后调用DeepSeek大模型API最终生成AI分析报告并展示。九、页面展示系统包含八个核心功能页面导航采用Streamlit的侧边栏机制构建侧边栏顶部为品牌标识区域展示了新电商智能分析标题以及直播带货·短视频种草·社交裂变三个核心标签并配有实时、AI、短视频三个状态徽章。导航菜单包含八个菜单项当前选中项以高亮样式突出显示。新电商智能分析决策系统十、AI使用说明在开发过程中使用了AI辅助编程工具DeepSeek主要应用场景如下使用场景具体应用数据加载与字段映射将原始CSV字段名规范化为Python命名风格处理数据类型转换商品名称翻译将英文品类词直译为中文去除拉丁占位词性能优化将apply逐行操作改为向量化操作groupby禁用排序Bug修复修复KeyError缺失列异常等运行问题典型迭代案例如下数据加载性能优化过程中初始版本加载时间约30秒通过AI协作排查定位到三个性能瓶颈评论清洗的逐行操作、分组聚合排序开销、SnowNLP逐条分析耗时优化后加载时间显著缩短。AI分析报告数据异常的修复过程中发现情感分析模块重新实例化并覆盖了预处理阶段已生成的标签列修复后直接基于现有数据计算统计摘要。缺失字段导致页面崩溃的问题通过AI建议的防御性编程策略在访问列之前增加列存在性判断保证了应用在不同数据状态下的稳定性。十一、项目启动系统的部署与启动极为简便。开发者或用户在安装完所有依赖后只需在终端中切换到项目根目录并执行以下命令cd 新电商智能分析系统 pip install -r requirements.txt streamlit run app.pyStreamlit会在本地启动开发服务器并自动打开浏览器访问地址用户即可通过侧边栏导航在各个功能页面之间自由切换。十二、总结本系统实现了从数据采集、数据处理、特征工程、模型训练到可视化决策的完整数据分析流程涵盖首页概览、新电商特色、商品分析、评论洞察、直播带货分析、模型预测、统计检验和AI智能分析八个功能页面。其核心价值在于将复杂的算法模型封装在直观的交互界面背后让非技术人员也能轻松进行数据探索和决策支持。后续优化方向包括融入更多时序特征节假日效应、活动周期以提升预测精度增加本地轻量级模型作为大模型API的备选方案以增强系统稳定性以及支持更多平台数据接入扩展分析维度。技术栈Python 3.9 | Streamlit | Pandas | Scikit-learn | Jieba | Plotly | DeepSeek API