帮我写一个识别垃圾邮件的python代码
时间: 2024-05-02 12:21:10 浏览: 85
以下是一个简单的python代码,用于识别垃圾邮件:
```python
import re
def is_spam(email):
# 匹配常见的垃圾邮件关键词
spam_words = ['buy now', 'make money fast', 'earn money', 'cash prize', 'click below', 'double your income']
for word in spam_words:
if re.search(word, email, re.IGNORECASE):
return True
# 判断邮件是否来自不可信的发件人
trusted_senders = ['gmail.com', 'yahoo.com', 'hotmail.com']
sender = re.search(r'@[\w.]+', email).group()
if sender not in trusted_senders:
return True
# 判断邮件中是否包含多个感叹号或问号
exclamation_marks = email.count('!')
question_marks = email.count('?')
if exclamation_marks + question_marks > 3:
return True
# 如果以上条件都不符合,则认为邮件不是垃圾邮件
return False
```
在上面的代码中,我们首先定义了一些常见的垃圾邮件关键词,然后使用正则表达式在邮件中查找这些关键词。如果邮件中包含任何一个关键词,我们就认为这是一封垃圾邮件。
接下来,我们判断邮件是否来自可信的发件人。在这个例子中,我们假设来自gmail.com、yahoo.com和hotmail.com的邮件是可信的。如果邮件来自其他域名,我们就认为它是垃圾邮件。
最后,我们还判断邮件中是否包含多个感叹号或问号。这是因为垃圾邮件通常会使用这些符号来吸引读者的注意力。
当我们使用这个函数来判断一封邮件是否是垃圾邮件时,只需要将邮件的内容作为参数传递给函数即可。例如:
```python
email = "Congratulations, you have won a cash prize! Click below to claim your prize now!"
if is_spam(email):
print("This is a spam email.")
else:
print("This is not a spam email.")
```
在这个例子中,我们的函数会返回True,因为邮件中包含了垃圾邮件关键词和感叹号。
阅读全文