mr-Envy/News-Bias-Detection-System
GitHub: mr-Envy/News-Bias-Detection-System
一个基于 TF-IDF 和 Linear SVM 的全栈 Web 应用,用于分析英文新闻文本并预测其五级政治偏见倾向。
Stars: 0 | Forks: 0
# 📰 新闻偏见检测系统
一个基于 NLP 的端到端 Web 应用程序,利用机器学习分析新闻文本并预测其政治偏见。
## 🚀 概述
本项目构建了一个完整的流程,利用自然语言处理 (NLP) 检测新闻文章中的偏见。它包括:
* 数据预处理和特征工程
* 模型训练和评估
* 使用 Flask 构建的后端 API
* 用于用户交互的前端界面
该系统允许用户输入新闻文本并实时接收预测的偏见类别。
## 🎯 功能特性
* 🔍 根据新闻文本预测政治偏见
* ⚡ 使用训练好的 ML 模型进行实时推理
* 🌐 使用 Flask 构建的 REST API
* 🖥️ 简洁干净的前端界面
* 📊 支持多类分类:
* 左翼 (Left)
* 倾左 (Leaning-Left)
* 中立 (Center)
* 倾右 (Leaning-Right)
* 右翼 (Right)
## 🧠 模型详情
* **算法:** Linear SVM (LinearSVC)
* **向量化器:** TF-IDF
* **优化参数:**
* `max_features = 12000`
* `ngram_range = (1,3)`
* 保留停用词以进行上下文学习
### 📈 性能
* 准确率: **~68%**
* 各类别在精确率、召回率和 F1-score 上保持均衡
## 🏗️ 项目结构
```
news-bias/
│
├── app.py # Flask backend
├── bias_model.pkl # Trained SVM model
├── tfidf_vectorizer.pkl # TF-IDF vectorizer
├── index.html # Frontend UI
├── requirements.txt # Dependencies
└── README.md # Project documentation
```
## ⚙️ 工作原理
1. 用户通过前端输入新闻文本
2. 文本发送到 Flask API (`/predict`)
3. 后端:
* 清洗文本
* 使用 TF-IDF 进行向量化
* 使用 SVM 预测偏见
4. 返回结果并显示
## 🛠️ 安装与设置
### 1. 克隆仓库
```
git clone https://github.com/your-username/news-bias.git
cd news-bias
```
### 2. 安装依赖
```
pip install -r requirements.txt
```
### 3. 运行后端
```
python app.py
```
### 4. 打开前端
在浏览器中打开 `index.html`(或使用 Live Server)。
## 📡 API 接口
### POST `/predict`
**请求:**
```
{
"text": "The government policy has been widely criticized"
}
```
**响应:**
```
{
"bias": "leaning-right"
}
```
## ⚠️ 局限性
* 模型基于美国媒体数据集进行训练
* 可能无法很好地推广到其他政治语境(例如印度)
* 偏见分类本质上具有主观性
## 🚀 未来改进方向
* 使用 transformer 模型 (BERT) 以提高准确率
* 添加置信度分数
* 改进 UI/UX
* 在线部署前端 + 后端
* 扩展数据集以覆盖全球范围
## 💌 关键收获
* NLP 中特征工程的重要性
* 模型比较与评估
* 端到端 ML 系统设计
* 使用 Flask 进行后端集成
* 前后端通信
## 📌 技术栈
* Python
* Scikit-learn
* Flask
* HTML, CSS, JavaScript
## 👨💻 作者
Nikhil Vyas
## ⭐ 如果你喜欢这个项目
给它一个 Star ⭐ 并欢迎参与贡献!
标签:Apex, Flask, LinearSVM, NLP, Python, REST API, Scikit-learn, TF-IDF, 人工智能, 后端开发, 多分类模型, 多模态安全, 媒体偏见, 情感分析, 政治偏见分析, 数据可视化, 数据科学, 文本分类, 文本挖掘, 新闻偏见检测, 无后门, 机器学习, 特征工程, 用户模式Hook绕过, 线性支持向量机, 资源验证, 逆向工具