项目简介
本项目是基于Python和TensorFlow框架的文本分类系统,用于对开源项目里的bug报告进行分类。采用卷积神经网络(CNN)作为核心模型,结合数据预处理、模型训练和评估等功能模块,能有效处理和分析文本数据,参考经典文本分类论文和开源实现,提供完整的文本分类解决方案。
项目的主要特性和功能
- 数据预处理:对原始bug报告数据进行清洗、分词、生成词汇表等操作,保证数据能被模型有效处理。
- 文本分类模型:基于CNN构建,支持随机初始化、预训练Word2Vec等多种词嵌入方式,可有效捕捉文本语义信息。
- 模型训练与评估:支持模型训练和评估,能通过训练集优化模型,在测试集上评估性能,输出准确率、召回率等指标。
- 数据集支持:可处理开源项目(如Eclipse)的bug报告数据集,自动加载和划分训练集与测试集。
- 参考实现:参考《Convolutional Neural Networks for Sentence Classification》及其开源实现,保证模型的科学性和有效性。
安装使用步骤
环境准备
- 确保已安装Python 3.5.3和TensorFlow 1.1.0。
- 使用conda创建虚拟环境并安装依赖包:
bash conda create -n textcnn python=3.5.3 conda activate textcnn pip install tensorflow==1.1.0 numpy==1.18.5 protobuf==3.19.6 six==1.16.0 werkzeug==1.0.1
数据准备
- 将原始bug报告数据放在
data/data_by_ocean/eclipse/raw/
目录下,文件名需为summary_description.csv
和bug_id_date_who.csv
。 - 运行数据预处理脚本生成模型输入数据:
bash python data_helpers.py
模型训练
- 运行模型训练脚本开始训练文本分类模型:
bash python train.py
- 训练时会输出每个epoch的训练时间和性能指标。
模型评估
- 训练完成后,运行评估脚本查看模型在测试集上的表现:
bash python eval.py
模型应用
- 使用训练好的模型对新文本进行分类预测:
bash python predict.py --text "Your input text here"
注意事项
- 项目中TensorFlow版本较旧(1.1.0),建议在虚拟环境中运行,避免与其他项目冲突。
- 数据预处理部分需根据实际数据集路径调整,确保文件路径正确。
- 项目参考了多个开源实现,使用时建议引用相关论文和代码库。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】