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, 假新闻检测, 安全防御评估, 文本分类, 机器学习, 版权保护, 请求拦截, 逆向工具