gpt4 book ai didi

python - 如何从安然电子邮件正文中删除 "forwarded message"标题和不需要的内容?

转载 作者:行者123 更新时间:2023-12-01 02:23:06 26 4
gpt4 key购买 nike

我正在尝试将安然电子邮件的所有正文附加到一个文件中,以便我可以通过消除停用词并使用 NLTK 将其拆分为句子来处理这些电子邮件的文本。我的问题是转发和回复的消息,我不知道如何清理它们。这是我到目前为止的代码:

    import os, email, sys, re,nltk, pprint 
from email.parser import Parser

rootdir = '/Users/art/Desktop/maildir/lay-k/elizabeth'
#function that appends all the body parts of Emails
def email_analyse(inputfile, email_body):
with open(inputfile, "r") as f:
data = f.read()

email = Parser().parsestr(data)

email_body.append(email.get_payload())
#end of function
#defining a list that will contain bodies
email_body = []
#call the function email_analyse for every function in directory
for directory, subdirectory, filenames in os.walk(rootdir):
for filename in filenames:
email_analyse(os.path.join(directory, filename), email_body )
#the stage where I clean the emails

with open("email_body.txt", "w") as f:
for val in email_body:
if(val):
val = val.replace("\n", "")
val = val.replace("=01", "")
#for some reason I had many of ==20 and =01 in my text
val = val.replace("==20", "")
f.write(val)
f.write("\n")

这是部分输出: 好吧,对于摄影师和乐队来说,我想说我们已经远远超出了我们的预算!这是有关摄影师的信息。我对一些主要的方案有一种感觉,我们可以在排练晚宴上至少花几个小时来协商。我不知道这通常要花多少钱,但他并不便宜!------------------------ 由Elizabeth Lay/HOU/AZURIX于09/转发13/99 07:34 PM --------------------------------------acollins@reggienet.com 于 09/13/99 05:37:37 PM请回复 acollins@reggienet.com 收件人:Elizabeth Lay/HOU/AZURIX@AZURIXcc:主题:Denis Reggie 婚纱摄影伊丽莎白您好:恭喜您即将结婚!我是阿什利·柯林斯 (Ashley Collins),雷吉先生的协调员。琳达·凯斯勒 (Linda Kessler) 将您的电子邮件地址转发给了我,以便我可以向您提供雷吉先生婚纱摄影的摄影报道信息。所以结果根本不是纯文本。关于如何正确执行的任何想法?

最佳答案

您可能需要查看正则表达式来解析转发和回复文本,因为格式在整个语料库中应该保持一致。

要删除转发的文本,您可以使用如下正则表达式:

-{4,}(.*)(\d{2}:\d{2}:\d{2})\s*(PM|AM)

这将匹配四个或更多连字符之间的所有内容以及格式为 XX:XX:XX PM 的时间。匹配 3 个破折号可能也可以正常工作。我们只是想避免在电子邮件正文中匹配连字符和破折号。您可以使用此正则表达式并在此链接中编写自己的正则表达式来匹配“收件人”和“主题” header :https://regex101.com/r/VGG4bu/1/

你也可以看看NLTK书的3.4节,里面讲了Python中的正则表达式:http://www.nltk.org/book/ch03.html

祝你好运!这听起来是一个有趣的项目。

关于python - 如何从安然电子邮件正文中删除 "forwarded message"标题和不需要的内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47739050/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com