虚假新闻检测系统

基于 ConceptNN 概念神经网络的虚假新闻检测 FastAPI 服务,支持文本 Sentence-Transformer 与图像 ResNet18 双模态特征及增量学习,可对接 Java 后端实时预测,适合 NLP+CV 毕业设计。

评分:4.8/5.0
销量:54
发布:2/9/2026
难度:L3 高级

获取完整源码

演示视频仅作效果参考。完整源码、项目说明与运行答疑,请私聊沟通(适合毕业设计 / 课程设计 / 课设参考)。

获取完整源码
含项目说明文档,便于对照学习
可本地运行,适合课设演示
沟通获取后可咨询运行问题

项目概览

项目实现概念空间构建、余弦相似度、ConceptNN 增量训练与 /predict、/train REST 接口,预处理含 text_vectorizer、image_vectorizer 与 feature_merger。提供 train_from_csv.py 初始训练、metrics 按类别评估与 predictions CSV 落盘,Python 3.9 实测通过,适合深度学习、多模态融合与虚假新闻识别类毕业设计与课程设计。

项目说明

虚假新闻检测系统

本项目是基于 ConceptNN (概念神经网络) 文章算法实现的虚假新闻检测后端服务。它支持文本与图片的双模态特征提取,并保留了文章核心的 增量学习 (Incremental Learning) 能力,能够对接 Java 后端系统进行实时预测与模型更新。


1. 项目目录结构

fake_news_detector/
├── main.py                    # FastAPI 服务主入口
├── train_from_csv.py          # 【新增】从 CSV 文件进行初始训练的工具脚本
├── test_api.py                # API 快速测试工具
├── config.py                  # 全局参数与类别映射配置
├── requirements.txt           # 项目依赖包清单
├── full_train_data.csv        # 示例/初始训练数据集 (含全维度特征)
├── 项目说明.md                # 本文档
├── models/                    # 【自动创建】存放训练好的模型文件 (.h5)
│   └── concept_nn_model.h5    # 持久化模型文件
├── data/                      # 【自动创建】存放运行产生的 CSV 结果
│   ├── predictions_1.csv      # 批次预测明细
│   ├── full_train_data.csv             # 总体准确率累计表
│   └── metrics_by_category.csv # 按类别的详细指标
├── core/                      # 算法核心代码
│   ├── __init__.py
│   ├── concept_nn.py          # 概念神经网络核心类 (含增量学逻辑)
│   ├── concept_space.py       # 文章核心:概念空间构建逻辑
│   └── cosine_similarity.py   # 余弦相似度计算工具
├── preprocessing/             # 数据预处理 (向量化)
│   ├── __init__.py
│   ├── text_vectorizer.py     # 文本特征提取 (sentence-transformer)
│   ├── image_vectorizer.py    # 图像特征提取 (ResNet18)
│   └── feature_merger.py      # 特征合并与元数据标准化
└── api/                       # 接口层
    ├── __init__.py
    ├── router.py              # API 路由实现 (/predict, /train)
    ├── schemas.py             # Pydantic 数据格式校验模型
    └── metrics.py             # 评估指标 (Precision, Recall, F1)

2. 文件功能说明

其他

  • models/: 用于存放持久化保存的 TensorFlow 模型文件 (.h5)。
  • data/: 用于存放运行产生的 predictions_n.csvfull_train_data.csv 等结果文件。

2. 项目启动与环境参数

环境要求

  • Python 版本: 推荐 Python 3.9 (本项目实测通过版本)。
  • 系统平台: 支持 Windows / macOS / Linux。

启动步骤

  1. 安装依赖:
    pip install -r requirements.txt
    
  2. 运行服务:
    python main.py
    
    服务默认启动在: http://127.0.0.1:8000

核心参数调节 (config.py)

  • N_EPOCHS: 初始训练的轮数。
  • UPDATE_EPOCHS: 增量学习时每一批数据的更新轮数。
  • SIMILARITY_THRESHOLDS: 概念空间构建时的相似度阈值搜索范围。

3. 接口调用示例

预测接口 (POST /predict)

向后端发送新闻数据,返回虚假概率。系统会自动在 data/ 目录下生成 CSV 记录。

请求示例:

{
  "items": [
    {
      "info_id": "unique_id_001",
      "info_content": "这里是新闻的正文内容...",
      "content_type": "社会",
      "image_base64": "",
      "publish_time": "2024-07-11",
      "user_gender": "女",
      "user_age": 23,
      "user_occupation": "农民",
      "user_location": "湖南",
      "user_register_time": "2003-06-10",
      "user_fans_count": 22,
      "like_count": 44,
      "comment_count": 33,
      "report_count": 11,
      "share_count": 6
    }
  ]
}

3. 初始化训练 (必须步骤)

在首次使用预测功能前,必须让模型学习“什么是虚假新闻”。项目提供了 train_from_csv.py 脚本来完成此任务。

训练数据格式

项目根目录下的 full_train_data.csv 应符合以下格式:

  • title: 新闻标题
  • desc: 新闻描述/正文
  • label: 标签 (0 = 真实, 1 = 虚假)

执行训练

# 确保 full_train_data.csv 已就绪
python train_from_csv.py

说明:

  • 脚本会调用 sentence-transformers 提取文本特征。
  • 训练完成后,会在 models/ 目录下生成 concept_nn_model.h5 权重文件。
  • 只要有了该文件,之后的预测接口才能给出有意义的概率值。

💡 训练数据质量保证 (去重逻辑)

为了确保模型的稳健性,训练脚本执行了严格的去重操作

  • 重复现象: 在原始收集中(如 51,055 行),常因多个学生采集重叠或“汇总表”包含“分表”而产生大量重复数据。
  • 去重逻辑: 脚本通过 drop_duplicates(subset=['info_content']) 仅保留唯一的正文内容(约 20,000+ 条)。
  • 必要性:
    1. 防止过拟合: 避免模型对高频出现的重复新闻产生“死记硬背”,确保其学习的是普遍规律。
    2. 公平评估: 纯净且独立的样本集能让准确率反映真实的泛化能力。

4. 测试方式

系统提供了多种方式进行功能验证:

方法 A:交互式文档 (推荐)

服务启动后,在浏览器访问: http://127.0.0.1:8000/docs

  • 你可以看到所有可用接口。
  • 点击 "Try it out" -> 修改 JSON -> 点击 "Execute",即可直接在页面上查看返回结果。

方法 B:命令行 Curl

打开终端,执行以下命令:

curl -X POST http://127.0.0.1:8000/predict \
  -H "Content-Type: application/json" \
  -d '{"items": [{"info_id": "t1", "info_content": "测试文本", "content_type": "社会", "image_base64": "", "publish_time": "2024-07-11", "user_gender": "男", "user_age": 20, "user_occupation": "学生", "user_location": "北京", "user_register_time": "2020-01-01", "user_fans_count": 0, "like_count": 0, "comment_count": 0, "report_count": 0, "share_count": 0}]}'

方法 C:Python 测试脚本

项目根目录下提供了 test_api.py,运行即可验证:

python test_api.py

5. 增量学习机制说明

本项目保留了文章的 Dynamic Learning (动态学习) 特性:

  1. 反馈学习: 当你有了一批真实标签(即知道哪些新闻确实是虚假,哪些是真实时),可以调用 /train 接口。
  2. 模型自进化: 系统会调用 incremental_update 方法,在不破坏原有知识的基础上,针对新数据微调网络权重。
  3. 性能监控: 每次预测的结果和概率分布都会记录在 CSV 中,方便后续进行离线分析和效果评估。

5. 常见问题 (FAQ)

  • 为什么第一次运行很慢? 首次运行会自动下载预训练的文本和图像模型(约 400MB),之后运行将直接从本地缓存加载,速度很快。

  • 如何查看 API 文档? 启动服务后,访问 http://127.0.0.1:8000/docs 即可查看可视化交互文档(Swagger UI)。

  • 运行报错 ModuleNotFoundError: No module named 'tf_keras' 由于 transformers 库目前对 Keras 3 有兼容性问题,必须安装备份包:pip install tf-keras

  • 支持哪个 Python 版本? 所有代码与依赖库均在 Python 3.9 环境下调试通过。虽然 3.10 理论上也支持,但为了减少依赖冲突,强烈建议使用 Python 3.9

获取完整源码

技术分类

包含内容

完整源码
项目说明文档

适合方向

适合人工智能、计算机科学毕业设计中 NLP、计算机视觉、FastAPI 服务化与增量学习方向;需先完成 CSV 初始训练再调用预测接口。

关于 AI源码

AI源码 整理计算机毕业设计、课程设计向的可运行项目参考,含说明文档与演示材料。完整源码请通过联系方式沟通获取。

QQ: 861077046
邮箱: 861077046@qq.com
已帮助 54+ 位同学完成选题参考
问能不能做我的题目

相关推荐

查看全部 →
微博热点数据分析与可视化系统
高级

微博热点数据分析与可视化系统

Flask 微博热搜分析平台:自动爬取热搜与评论、jieba 分词清洗、SnowNLP 情感分类,ECharts 热度排行/情感饼图/词云可视化,SQLite 存储与角色权限,适合 Python 数据分析毕业设计。

PythonHTMLSQLite
4.873
基于 Python 的短视频用户行为分析系统
高级·新上架

基于 Python 的短视频用户行为分析系统

基于 KuaiRec/KuaiRand 数据集的短视频分析平台:行为漏斗、推荐偏差、KMeans 聚类、TF-IDF/t-SNE、LightGCN 图推荐与 A/B 实验,Flask 仪表盘一键重训,适合推荐系统大数据毕业设计。

PythonHTMLSQLite
4.875
城市交通流量预测与拥堵成因分析系统
高级

城市交通流量预测与拥堵成因分析系统

城市交通拥堵 monorepo:data-pipeline 多源时空特征、STGNN Proxy 流量预测、归因分析与 Leaflet 地图可视化,FastAPI 加载离线产物,适合交通大数据与计算机设计毕业设计。

PythonHTMLSQLite
4.820
电商用户行为漏斗与CRO转化率优化分析
高级·新上架

电商用户行为漏斗与CRO转化率优化分析

电商漏斗 CRO 分析平台:页面/事件双漏斗、渠道设备多维诊断、PIE 优先级矩阵、卡方检验与 XGBoost 购买预测,Flask+ECharts 仪表板,支持 Retailrocket 真实数据,适合电商数据分析毕业设计。

PythonHTMLSQLite
4.866
基于 Python 的汽车市场数据分析与可视化平台
高级·新上架

基于 Python 的汽车市场数据分析与可视化平台

Flask 汽车市场分析平台:整合 Cars24/UCI Automobile 等多源真实数据集(统一 CNY),含多维分析、随机森林二手车价格预测、品牌对比与销量统计,适合 Python 数据分析毕业设计。

PythonHTMLSQLite
4.894
中学生学业水平多维度分析与预警系统
高级·新上架

中学生学业水平多维度分析与预警系统

Flask 中学生学业预警系统:UCI Student Performance 真实数据,规则引擎 40%+随机森林/GBDT 60% 融合考前评分,六维雷达与皮尔逊相关分析,教师/管理员双角色,适合教育数据挖掘毕业设计。

PythonHTMLSQLite
4.867