Fake News Detector是一个基于事实核查的虚假新闻自动检测系统。 该项目利用人工智能技术,特别是大型语言模型(LLM)和先进的嵌入模型,来分析新闻文本的真实性。它的核心工作流程是,首先从用户输入的新闻内容中自动识别并提取出需要核查的核心观点或声明。然后,系统会利用搜索引擎去互联网上查找相关的证据资料。通过对比分析新闻声明和搜索到的证据,系统最终会对新闻的真实性给出一个判断,例如“正确”、“错误”或“部分正确”,并展示其判断依据和推理过程。整个系统通过一个可视化的网页界面进行操作,让用户可以直观地看到每一步的核查进展。
功能列表
- 自动提取核心声明: 能自动从复杂的新闻文本中识别并抽取出最关键、需要被核查的核心事实声明。
- 实时网络搜索: 系统接入了DuckDuckGo搜索引擎,能够根据提取出的核心声明,实时在互联网上搜索相关的文章、报道等作为佐证材料。
- 语义匹配分析: 使用BGE-M3嵌入模型来计算新闻声明与网络证据之间的语义相关性,确保找到的证据与待核查的观点内容高度相关。
- 长文本证据处理: 当搜索到的证据材料篇幅过长时,系统会自动将其分割成小段落,并从中筛选出与核心声明最相关的证据片段。
- 可靠的事实核查: 基于找到的证据,系统会进行综合判断,并给出“正确”、“错误”或“部分正确”的核查结论,同时解释得出结论的推理过程。
- 可视化操作界面: 通过Streamlit构建了一个用户友好的Web界面,用户可以实时看到从声明提取、证据搜索到最终判断的每一个步骤。
使用帮助
该工具是一个需要用户在自己电脑上进行部署的应用程序,它没有可以直接访问的网站,因此需要一些基础的编程知识来完成安装和启动。
前期准备
在开始安装之前,你需要确保电脑满足以下条件:
- 安装Python: 你的电脑需要安装Python 3.12版本。你可以在Python官网找到并下载安装包。
- 大语言模型 (LLM): 你需要一个可以本地部署的大语言模型,例如
Qwen2.5
,或者其他任何兼容OpenAI API接口的模型。这是驱动整个系统进行分析和判断的核心。 - 嵌入模型: 你需要准备
BGE-M3
嵌入模型,可以是从网上下载后部署在本地,也可以是通过API远程调用。这个模型主要用来分析文本之间的相似度。
安装步骤
- 克隆代码仓库
首先,你需要使用Git工具将项目的源代码从GitHub上下载到你的电脑。打开你电脑的终端(在Windows上是命令提示符或PowerShell,在macOS或Linux上是Terminal),然后输入以下命令:git clone https://github.com/CaptainYifei/fake-news-detector.git
执行命令后,代码会被下载到一个名为
fake-news-detector
的文件夹里。接下来,进入这个文件夹:cd fake-news-detector
- 安装依赖库
项目运行需要依赖许多第三方的Python库,这些库都被记录在requirements.txt
文件中。你可以使用pip
工具一键安装所有需要的库。在终端中运行以下命令:pip install -r requirements.txt
这个过程可能会需要一些时间,因为它会自动下载并安装所有必要的软件库。
- 配置模型路径
安装完成后,你需要告诉程序你的BGE-M3
嵌入模型存放在哪里。- 找到项目文件夹中的
fact_checker.py
文件,并用代码编辑器打开它。 - 在文件中找到下面这行代码:
self.embedding_model = BGEM3FlagModel('/path/to/your/bge-m3/')
- 将代码中的路径
'/path/to/your/bge-m3/'
修改为你自己存放BGE-M3
模型的实际文件夹路径。如果你使用的是远程API,则需要根据你使用的模型服务商的要求修改此部分代码。
- 找到项目文件夹中的
启动应用
所有配置完成后,你就可以启动这个虚假新闻检测工具了。在项目的根目录(fake-news-detector
文件夹)下打开终端,然后运行以下命令:
streamlit run app.py
命令执行后,程序会自动在你的浏览器中打开一个新的页面,地址通常是http://localhost:8501
。 这就是工具的操作界面。
如何操作
应用启动后,你会看到一个简洁的网页界面。
- 在界面上找到一个文本输入框。
- 将你想要核查真实性的新闻文本完整地复制并粘贴到这个输入框中。
- 点击“开始核查”或类似的按钮。
- 系统会立即开始工作,你可以在界面上看到实时更新的核查流程,包括:
- 正在提取新闻的核心声明…
- 正在搜索相关证据…
- 正在分析证据与声明的相关性…
- 正在生成事实核查结论…
- 最后,系统会显示最终的核查结论(正确、错误或部分正确),并附上相关的证据链接和分析过程,让你了解它是如何得出这个结论的。
应用场景
- 个人用户快速甄别信息
当个人在社交媒体或网络上看到一则不确定的新闻时,可以利用这个工具快速进行事实核查。用户只需将新闻文本复制粘贴到工具中,即可获得基于网络证据的初步判断,帮助自己避免被谣言误导。 - 新闻从业者辅助工具
对于记者、编辑等新闻从业人员,这个工具可以作为一个高效的辅助手段。在报道或引用一则新闻前,可以先用它进行初步的真实性筛选,快速找到相关的佐证材料或发现矛盾之处,从而提升新闻报道的准确性和严谨性。 - 内容平台信息审核
社交媒体平台、内容聚合网站等可以集成类似的技术,对平台上的大量信息进行自动化审核。通过对用户发布的内容进行实时分析,可以快速识别并标记潜在的虚假信息,减少谣言的传播范围,维护平台内容的健康生态。
QA
- 这个工具支持什么语言的新闻检测?
该工具主要依赖于其背后的大语言模型(LLM)和嵌入模型的能力。理论上,如果所配置的模型(如Qwen2.5和BGE-M3)支持多语言处理,那么该工具也能够处理相应语言的新闻文本。目前主要以中文和英文为主。 - 检测结果完全可靠吗?
不完全可靠。该工具的检测结果是基于AI模型对网络公开信息的搜索和分析得出的,可以作为非常有价值的参考,但不能保证100%准确。结果的准确性受到搜索引擎能找到的证据质量、以及大语言模型自身判断能力的影响。对于非常重要信息的核实,建议用户将此工具的结果作为辅助,并结合其他渠道进行多方求证。 - 我不是程序员,可以使用这个工具吗?
对于没有编程背景的用户来说,直接使用该项目会有一定的困难,因为它需要在本地电脑上进行代码的下载、环境配置和启动等操作。目前该项目没有提供公开的在线网站,主要面向的是有一定技术基础的开发者或研究人员。