编写一个python代码:使用贝叶斯定律,给定任意邮件(一段文档),输出是否为垃圾邮件.
时间: 2024-09-25 09:04:33 浏览: 36
基于贝叶斯的垃圾邮件识别python代码+数据+文档说明(高分项目)
5星 · 资源好评率100%
在Python中,我们可以使用朴素贝叶斯分类器(Naive Bayes Classifier)来判断一封邮件是否是垃圾邮件。下面是一个基础的文本分类器实现,假设我们已经有了训练数据集:
首先,需要安装`sklearn`库,如果尚未安装,可以使用pip安装:
```
pip install sklearn
```
然后,使用朴素贝叶斯模型的代码示例:
```python
from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
from sklearn.metrics import accuracy_score
import pandas as pd
# 假设你有一个包含标签(0:非垃圾邮件, 1:垃圾邮件)的数据集,如data.csv
data = pd.read_csv('data.csv')
X = data['邮件内容']
y = data['邮件类型']
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 文本向量化
vectorizer = CountVectorizer()
X_train_transformed = vectorizer.fit_transform(X_train)
X_test_transformed = vectorizer.transform(X_test)
# 使用朴素贝叶斯分类器
clf = MultinomialNB()
clf.fit(X_train_transformed, y_train)
# 预测
y_pred = clf.predict(X_test_transformed)
# 评估模型
accuracy = accuracy_score(y_test, y_pred)
print("模型准确率:", accuracy)
# 对新邮件进行预测
new_email = "这是一封新的邮件..."
new_email_transformed = vectorizer.transform([new_email])
prediction = clf.predict(new_email_transformed)
print("新邮件的预测结果:", prediction)
阅读全文