Cel0519/Advanced-Phishing-Detection-System-Using-Natural-Language-Processing

GitHub: Cel0519/Advanced-Phishing-Detection-System-Using-Natural-Language-Processing

基于 DistilBERT 的多语言钓鱼检测系统,通过 NLP 与机器学习对邮件内容和 URL 进行分类,防御社交工程攻击。

Stars: 0 | Forks: 0

高级钓鱼检测系统 概述 本项目旨在使用基于 DistilBERT 的多语言机器学习模型来检测电子邮件和 URL 中的钓鱼企图。该系统能够将多种语言的输入分类为“合法”或“钓鱼”。 前置条件 请确保已安装以下工具和包: 1. Python 3.8 或更高版本 2. 必需的 Python 包: - pandas - torch - transformers - datasets - scikit-learn - nltk - matplotlib - seaborn 使用以下命令安装所需的包: pip install pandas torch transformers datasets scikit-learn nltk matplotlib seaborn 3. NLTK 数据: 下载必要的 NLTK 数据集: import nltk nltk.download('stopwords') nltk.download('punkt') 4. 硬件要求**: - GPU(可选,但建议使用以加快模型训练和推理速度) - 至少 8GB RAM 项目目录结构 确保项目目录包含以下文件和文件夹: - `distilbert_phishing_model/` - 用于保存已训练模型的目录 - `results/` - 用于保存模型训练结果的目录 - `templates/` - 包含 index.html 文件的附加模板 - `Hugging_face_transformer.ipynb` - 包含主要代码的 Python 文件 - `app.py` - 用于运行模型的主应用程序脚本 - `dataset_phishing.csv` - 包含钓鱼数据的 Dataset - `emails.csv` - 包含电子邮件样本的 Dataset - `Phishing_Legitimate_full.csv` - 包含钓鱼和合法样本的综合 Dataset - `readme.txt` - 运行项目的说明 运行项目的步骤 1. 解压项目文件夹 解压提供的文件夹并导航至项目目录。 ``` unzip advanced_phishing_detection.zip cd advanced_phishing_detection ``` 2. 准备数据集 确保数据集(`dataset_phishing.csv`、`emails.csv`、`Phishing_Legitimate_full.csv`)位于项目目录中。 3. 预处理数据 运行脚本中包含的预处理步骤以: - 移除 stopwords - 对文本进行 tokenize - 拼接电子邮件信息和 URL 预处理已在 `app.py` 脚本和 Jupyter Notebook 中实现自动化。 4. 训练模型 5. 打开 Jupyter Notebook `Hugging_face_transformer.ipynb` 或在终端中运行脚本。 6. 运行训练脚本以微调 DistilBERT 模型: python app.py 7. 确保在代码中取消注释 `trainer.train()` 方法,以便在提供的数据集上训练模型。 8. 评估模型 评估包括: - 计算准确率、F1 score、精确率和召回率等指标。 - 显示混淆矩阵。 - 生成多语言准确率图表。 训练完成后,在 Jupyter Notebook 或终端中运行评估。 6. 预测钓鱼企图 使用 `classify_email` 函数对单个电子邮件和 URL 进行分类: ``` from app import classify_email def example_prediction(): email = "Your account has been compromised." url = "http://fake-url.com" result = classify_email(email, url) print(result) # Outputs: 'Phishing' or 'Legitimate' example_prediction() ``` 7. 复现结果 要复现结果: 8. 使用提供的数据集运行训练脚本。 9. 在测试数据集上评估训练好的模型。 10. 查看准确率、F1 score 和其他指标。 ## 附加说明 1. 如果数据集被移动到其他目录,请更新代码中的文件路径。 2. 使用 GPU 加速以加快训练和评估速度。 3. 如有问题或疑问,请查看 `results/` 目录中的错误日志。 如需进一步的帮助,请通过 ishikaupadhyay01@gmail.com 联系 ishika upadhyay
标签:Apex, DistilBERT, 代码示例, 凭据扫描, 安全防护, 数据分析, 机器学习, 系统调用监控, 逆向工具, 钓鱼检测