朴素贝叶斯实现垃圾邮件过滤的源码
时间: 2024-10-10 22:14:39 浏览: 47
项目实战-朴素贝叶斯算法实现垃圾邮件过滤源码及数据集.zip
5星 · 资源好评率100%
朴素贝叶斯分类器在垃圾邮件过滤中是一个常见的应用。朴素贝叶斯算法基于贝叶斯定理,假设特征之间相互独立,尽管这个“朴素”假设通常在实际数据中并不成立,但在许多场景下它仍能提供不错的性能。以下是一个简单的Python示例,使用scikit-learn库实现垃圾邮件过滤:
```python
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
import pandas as pd
# 假设你已经有了两个CSV文件,一个是训练集(train.csv),包含邮件内容(text)和标签(label, 0表示非垃圾邮件,1表示垃圾邮件)
train_data = pd.read_csv('train.csv')
# 文本预处理(如分词、去除停用词等)
vectorizer = CountVectorizer()
X_train = vectorizer.fit_transform(train_data['text'])
y_train = train_data['label']
# 训练朴素贝叶斯模型
model = MultinomialNB()
model.fit(X_train, y_train)
# 对新的邮件进行分类
def classify_spam(text):
X_test = vectorizer.transform([text])
prediction = model.predict(X_test)
return 'Spam' if prediction[0] == 1 else 'Not Spam'
new_email = "这是一封测试邮件..."
print(classify_spam(new_email))
阅读全文