利用Python进行邮件预测(LSTMs 和 时间序列)

本文包括邮箱登入,邮件数据分析,长短时神经网络分析,时间序列分析。

参考文献原文为对google邮箱的翻译


1 163邮箱登入

本文利用imapclient库进行登入,网易邮箱登入会遇到错误可以refer一下链接 本文主要获取邮件收取的时间序列,需要获取邮件更多信息可以参考 。获取2016年1月1日开始至今的邮件。

import imapclient
import pandas as pd
import getpass

youremail = input()
yourpassword = getpass.getpass()

imapObj = imapclient.IMAPClient("imap.163.com", ssl=True) #若使用其他邮箱 可以换为其他邮箱的IMAP服务器地址 
imapObj.login(youremail, yourpassword)
imapObj.select_folder("INBOX", readonly=True)

UIDs = imapObj.search('(SINCE "01-Jan-2016")')

mails = []
for msgid, data in imapObj.fetch(UIDs, ["ENVELOPE"]).items():
    envelope = data[b"ENVELOPE"]
    date = envelope.date
    if envelope.subject is not None:
        subject = envelope.subject.decode()
    else:
        subject = None
    mails.append((subject, date))

mail_df = pd.DataFrame(mails)
mail_df.columns = ["Subject", "Date"]
mail_df["Date"] = pd.to_datetime(mail_df["Date"])
mail_df = mail_df.set_index("Date")

print("A total of {} e-mails loaded.".format(len(mail_df)))

python2 环境可以运行,换完python3 环境会遇到以下问题[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748) 暂未解决


2 邮件数据分析

本节对数据按照小时和星期进行总汇分析,并进行可视化。
对于可视化的色彩渐变可参考,更改调色板可参考

#分析汇总代码
import calendar
import seaborn as sns
import matplotlib.pyplot as plt

weekdays = [calendar.day_name[i] for i in range(7)]

# E-Mails per Hour
per_hour = pd.DataFrame(mail_df["Subject"].resample("h").count())
per_hour_day = (
    per_hour.groupby([per_hour.index.hour]).sum()
    / per_hour.groupby([per_hour.index.hour]).count()
)
per_hour_day.reset_index(inplace=True)
per_hour_day.columns = ["Hour", "Count"]

# E-Mails per day
per_day
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值