Sumanth181991/NLP_Fake_News_Detection

GitHub: Sumanth181991/NLP_Fake_News_Detection

一个使用 NLP 和机器学习技术(Linear SVM + TF-IDF)构建的假新闻检测系统,通过 FastAPI 提供 REST API 并支持 Docker 容器化部署。

Stars: 0 | Forks: 0

# 📰 使用 NLP 和机器学习进行假新闻检测 ## 📌 项目概述 假新闻在数字平台上迅速传播,使得人们难以区分真实信息和虚假信息。 本项目构建了一个端到端的**自然语言处理 (NLP)** pipeline,利用经典的 NLP 技术和机器学习将新闻文章分类为**假新闻** 或**真新闻**。 该应用程序使用 **FastAPI** 部署为 REST API,并使用 **Docker** 进行容器化。 # 🚀 功能特性 - 端到端 NLP Pipeline - 文本清洗与预处理 - Tokenization - 停用词移除 - 词形还原 - 词袋模型 - TF-IDF 向量化 - 多种机器学习模型 - 模型比较 - FastAPI REST API - Docker 支持 - GitHub Actions CI # 📂 数据集 数据集:ISOT Fake News Dataset 内容: - Fake.csv - True.csv 总记录数: | 数据集 | 记录数 | |----------|---------| | 假新闻 | 23,481 | | 真新闻 | 21,417 | | 总计 | 44,898 | 字段: - title - text - subject - date # 🛠 使用的技术 ## 编程语言 - Python 3.10 ## NLP - NLTK ## 机器学习 - Scikit-Learn ## API - FastAPI ## 部署 - Docker - Docker Compose ## 模型序列化 - Joblib # 📁 项目结构 ``` Fake-News-Detection/ │ ├── app/ │ └── main.py │ ├── data/ │ ├── Fake.csv │ └── True.csv │ ├── models/ │ ├── fake_news_model.pkl │ └── tfidf_vectorizer.pkl │ ├── notebooks/ │ └── EDA.ipynb │ ├── src/ │ ├── preprocess.py │ └── predict.py │ ├── .github/ │ └── workflows/ │ └── python.yml │ ├── Dockerfile ├── docker-compose.yml ├── requirements.txt ├── README.md └── .gitignore ``` # 🔄 NLP Pipeline ``` Raw News │ ▼ Text Cleaning │ ▼ Lowercase Conversion │ ▼ URL Removal │ ▼ HTML Removal │ ▼ Punctuation Removal │ ▼ Number Removal │ ▼ Tokenization │ ▼ Stop Word Removal │ ▼ Lemmatization │ ▼ TF-IDF Vectorization │ ▼ Linear SVM │ ▼ Prediction ``` # 🤖 机器学习模型 以下模型进行了训练和比较。 | 模型 | 特征提取 | 准确率 | |--------|--------------------|----------| | Multinomial Naive Bayes | Bag of Words | **95.59%** | | Multinomial Naive Bayes | TF-IDF | **94.04%** | | 逻辑回归 | TF-IDF | **98.72%** | | **Linear SVM** | **TF-IDF** | **99.55%** ✅ | 最佳模型: - 线性支持向量机 - TF-IDF Vectorizer # 📊 模型评估 评估指标: - 准确率 - 精确率 - 召回率 - F1 分数 - 混淆矩阵 # 🌐 REST API ## 首页 ``` GET / ``` 响应 ``` { "message": "Fake News Detection API is running!" } ``` ## 预测 ``` POST /predict ``` 请求 ``` { "news": "The government announced a new education policy today." } ``` 响应 ``` { "prediction": "Fake News" } ``` # ▶️ 本地运行 ## 克隆仓库 ``` git clone https://github.com/Sumanth181991/NLP_Fake_News_Detection.git ``` ## 创建虚拟环境 ``` python -m venv .venv ``` ## 激活 Windows ``` .venv\Scripts\activate ``` Linux/macOS ``` source .venv/bin/activate ``` ## 安装依赖项 ``` pip install -r requirements.txt ``` # ▶️ 运行 FastAPI ``` uvicorn app.main:app --reload ``` 打开 ``` http://127.0.0.1:8000/docs ``` # 🐳 Docker 构建 ``` docker compose up --build ``` Swagger ``` http://localhost:8000/docs ``` # 📈 未来改进 - Word2Vec - GloVe Embeddings - FastText - BERT - RoBERTa - Transformer 模型 - 可解释 AI (LIME/SHAP) - CI/CD 部署至 Azure # 💡 演示的关键 NLP 概念 - 文本预处理 - Tokenization - 停用词 - 词形还原 - 词袋模型 - TF-IDF - 特征工程 - 文本分类 # 📚 面试亮点 本项目展示了: - 端到端 NLP Pipeline - 经典 NLP 技术 - 特征工程 - 模型比较 - 机器学习模型选择 - REST API 开发 - Docker 容器化 - GitHub CI/CD - 生产就绪的项目结构 # 👨‍💻 作者 **Sumanth Ashwath** 高级基础设施工程师 | AI 与机器学习爱好者 GitHub: https://github.com/Sumanth181991
标签:Apex, AV绕过, Docker, FastAPI, 假新闻检测, 安全防御评估, 文本分类, 机器学习, 版权保护, 请求拦截, 逆向工具