我尝试使用概率方法实施反垃圾邮件引擎。第一步是分析并对垃圾邮件中的单词类型及其频率进行一些研究。所以我用Java编写了一个非常简单的程序来过滤垃圾邮件中的单词。我通过使用“split(”\ W“)”(\ W为空格)将整个文本文件分为行和行为单词。
我下载了垃圾邮件存档,并认为我会使用此应用程序轻松分析或扫描这些txt文件。但很快,我陷入了一个重大问题!文本文件包含HTML标签,链接,电子邮件标题,等等......
现在我想知道如何解决这个问题?我应该使用html解析器还是加强我分析这些文件的逻辑?
答案主要取决于我是否会在实施阶段遇到同样的问题?当前的垃圾邮件过滤器有何功能
答案 0 :(得分:1)
邮件信封虽然是电子邮件中不可见的部分,但却是标准的。没有这些标题,该消息将无法与您联系。当标准库完成这项工作时,不需要自己编写解析逻辑。
from email import message_from_string
mailfd = open("mfile_path_to_message").read()
message = message_from_string(mailfd)
print message.get("from")
如果您的邮件采用unix mbox格式,Mailbox库将会很有帮助。要解析像HTML这样的富文本,BeautifulSoup是更好的选择。