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绕过, 线性支持向量机, 资源验证, 逆向工具