站点图标 Linux-技术共享

虚假新闻检测器 (Fake News Detector)

一个基于事实核查的虚假新闻自动检测系统,基于大型语言模型和BGE-M3-Embedding实现针对虚假新闻的事实核查,使用Streamlit构建Web界面。

fake-news-detector/

├── app.py # 主应用程序入口
├── fact_checker.py # 事实核查核心逻辑
├── auth.py # 用户认证系统
├── db_utils.py # 数据库操作工具
├── pdf_export.py # PDF报告生成
├── requirements.txt # 项目依赖
├── api.py # API接口
├── gunicorn.conf.py # Gunicorn配置
├── start_server.sh #API启动脚本
├── .gitignore # Git忽略文件
├── LICENSE # 开源许可证
├── README.md # 项目说明文档

├── test/ # 测试目录
│ ├── api_test_page.html # api测试代码
└── docs/ # 文档目录
├── images/ # 文档中使用的图片
│ └── screenshot.png # 应用截图
├── api_doc.html # API文档
└── usage.md # 详细使用说明

 

项目特点

快速开始

前提条件

安装

  1. 克隆仓库
git clone https://github.com/yourusername/fake-news-detector.git
cd fake-news-detector
 
  1. 安装依赖
pip install -r requirements.txt
 
  1. 配置模型 在fact_checker.py中,根据需要修改BGE-M3模型路径:
self.embedding_model = BGEM3FlagModel('/path/to/your/bge-m3/')
 

启动应用

streamlit run app.py
 

应用将在本地启动,通常为 http://localhost:8501

使用方法

  1. 在应用界面中输入需要核查的新闻文本
  2. 系统会自动:
    • 提取新闻的核心声明
    • 搜索相关证据
    • 分析证据相关性
    • 给出事实核查结论

系统架构

该应用采用了多步骤管道流程进行事实核查:

  1. 提取阶段:使用LLM从输入文本中提取可核查的声明
  2. 搜索阶段:通过搜索引擎API获取相关证据
  3. 相关性排序:使用BGE-M3嵌入模型计算证据与声明的语义相似度
  4. 证据处理:将长文本分块并找出最相关的证据片段
  5. 判断阶段:基于相关证据做出判断并给出推理过程

技术栈

贡献指南

欢迎贡献代码、提交问题或改进建议。请遵循以下步骤:

  1. Fork该仓库
  2. 创建功能分支 (git checkout -b feature/xxx)
  3. 提交更改 (git commit -m 'Add xxx feature')
  4. 推送到分支 (git push origin feature/xxx)
  5. 创建Pull Request
退出移动版