针对传统文本分类方法在挖掘评论间关联特征的不足,本研究设计并实现了一种基于图卷积网络(GCN)的垃圾评论识别系统。系统采用Flask框架搭建Web应用,通过TF-IDF算法提取评论文本特征,结合内容相似度构建图结构数据,利用两层GCN模型进行节点特征聚合与分类预测。实验结果表明,在YelpZip数据集上垃圾评论识别准确率达85.6%,单条评论分析响应时间小于2秒,批量处理千条数据平均耗时38秒。系统通过可视化界面支持实时检测与文件上传功能,验证了图神经网络在文本关联分析中的有效性,为中小平台的内容审核提供了可操作性方案。研究成果表明,融合图结构特征的分类方法较传统模型准确率提升5-8个百分点,具有实际应用价值。
关键字:Flask框架;图卷积网络;垃圾评论识别;文本分类
3.2功能需求分析
3.1.1 数据预处理功能流程分析
数据预处理功能负责将原始评论文本转换为模型可处理的规范化格式。该功能包含文本清洗、分词、去停用词和特征提取四个主要步骤。文本清洗阶段通过正则表达式移除特殊字符和冗余信息,保留核心内容。随后使用NLTK工具包对清洗后的文本进行分词处理,将句子拆分为独立词语单元。系统通过加载预定义的英文停用词表过滤无意义词汇,最终通过TF-IDF算法将文本内容转换为数值特征向量,存储为稀疏矩阵格式以节省存储空间。
图3-1 数据预处理功能流程
3.1.2 图构建功能流程分析
图构建功能通过评论内容相似性建立节点关联关系,生成图结构数据。首先基于预处理后的TF-IDF特征矩阵,计算评论间的余弦相似度。采用K近邻算法筛选每条评论的相似邻居节点,保留前20个最相关的连接关系。系统将节点特征和邻接矩阵分别保存为稀疏矩阵,使用NetworkX库生成图数据对象。该过程通过阈值控制减少冗余边,确保图结构的有效性。
图3-2 图构建功能流程
3.1.3 垃圾评论识别功能流程分析
垃圾评论识别功能通过训练好的GCN模型实现分类预测。模型输入包含节点特征矩阵和邻接矩阵,经过两层图卷积操作提取语义特征。第一层将输入特征降维至64维空间,第二层进一步提取高阶特征并输出二分类结果。系统对单条评论采用实时预测模式,对批量数据启用并行计算。预测结果通过Softmax函数生成概率分布,设定0.5为分类阈值,输出最终标签。
4.2.1数据处理设计
数据处理模块主要完成原始评论数据的清洗与特征提取工作。系统通过Python脚本读取CSV文件后,首先自动检测文件编码格式与分隔符,随后对评论文本进行标准化处理。在编码检测阶段,系统通过遍历常见编码格式实现智能识别。核心代码通过try-except结构实现编码验证,当读取文件出现解码错误时自动切换编码方式。这种设计有效解决了不同操作系统生成文件的兼容性问题:
def detect_encoding(file_path):
encodings = ['utf-8', 'latin1', 'iso-8859-1']
for encoding in encodings:
try:
with open(file_path, 'r', encoding=encoding) as f:
f.read(1024)
return encoding
except:
continue
return 'utf-8'
数据清洗阶段采用正则表达式过滤特殊字符。通过建立模式匹配规则,清除URL、HTML标签等噪声数据。实际处理中发现约12%的评论包含电话号码或邮箱地址,清洗后使文本特征更突出。词形还原操作使用NLTK的WordNetLemmatizer,将"running"还原为"run"这类基础形式,提升后续特征提取的准确性。
特征提取环节采用TF-IDF算法生成文本向量。设置max_features=5000参数控制特征维度,避免产生高维稀疏矩阵。实验表明该参数值在保证90%特征信息量的同时,使处理速度提升3倍。最终生成的特征矩阵存储为npz格式,供后续图构建模块调用。
4.2.4Web界面交互逻辑
系统通过Flask框架搭建Web服务,采用MVC模式实现用户交互功能。前端页面使用Bootstrap框架构建响应式布局,后端路由处理分为单条评论分析和批量文件处理两种模式。核心交互流程如图4.4所示,用户在页面提交数据后,服务端调用预处理模块和训练好的GCN模型进行计算。
5.3测试结论
如表6-1所示,系统在基础功能实现方面表现良好,但分类精度仍有提升空间。批量处理测试的总体准确率为85.6%,其中正常评论识别准确率88.3%,垃圾评论识别率82.9%。单条评论测试中发现,当评论文本长度小于20字符时(如"Good!"),模型预测置信度波动较大(正常:52.1%,垃圾:47.9%),说明短文本特征提取不够充分。界面操作测试显示,90%的测试人员可在3分钟内掌握系统使用方法,但结果页面缺少结果导出功能,需后续完善。
表5-1 测试结果汇总表
测试类别 | 测试用例数 | 通过率 | 平均耗时 | 主要问题 |
单条评论分析 | 50 | 100% | 1.8s | 短文本置信度波动 |
批量文件处理 | 10 | 100% | 35s | 大文件响应延迟 |
异常格式文件 | 5 | 80% | - | TXT文件解析失败 |
压力测试 | 5 | 100% | 64s | 内存未完全释放 |
测试结果表明,系统基础功能完整且具有实用价值,但需在以下方面进行优化:1)增加文本长度检测,对短文本启用补充分析策略;2)优化文件解析模块支持更多格式;3)引入结果导出与历史记录功能。这些改进将进一步提升系统的实用性和可靠性。