Python 清除文件中的特定单词

Python 清除文件中的特定单词,python,file,Python,File,我正在处理垃圾邮件过滤器,在文件中,我也有HTML格式的电子邮件,因此有如下部分: br></font><br><br><br><br><br><br><br><br><br><br><br><br><br= ><br><br><br></font></p><

我正在处理垃圾邮件过滤器,在文件中,我也有HTML格式的电子邮件,因此有如下部分:

br></font><br><br><br><br><br><br><br><br><br><br><br><br><br=
><br><br><br></font></p></center></center></tr></tbody></table></center></=
center></center></center></center></body></html>
br>
















我忽略了他们的方式:

if word[0] == '<' or word[len(word)-1] == '>':
如果单词[0]='':
但仍有一些部分被输入了mi字典。我一直在寻找如何忽略这些词的方法,但没有成功。python中是否有一些库可以解决这个问题,或者有人知道更有效的编码方法吗

现在我读到的单词如下:

mail_words = {}
with open(email, 'r', encoding='utf-8') as file:
       text_of_mail = file.read()
        words = text_of_mail.split()
        words = [w.translate(str.maketrans("", "", "0123456789”#%&\’()*+,-./:;=?@[\\]^_`{|}~’")) for w in words]



for word in words:
  if word == '' or word == ' ' or word == '\n' or word[0] == '<' or word[len(word)-1] == '>':
                pass
  elif word not in mail_words:
      mail_words[word] = 1
  else:
      mail_words[word] += 1
mail_words={}
打开(电子邮件“r”,编码为“utf-8”)作为文件:
text\u of_mail=file.read()
words=text\u of_mail.split()
words=[w.translate(str.maketrans(“,”,“0123456789”#%&\'()*+,-./:;=?@[\]^ `{124;}~”)表示w的words]
用文字表示:
如果word==''或word=''或word='\n'或word[0]='':
通过
elif单词不在邮件中\u单词:
邮件字数[字]=1
其他:
邮件单词[word]+=1

欣赏

而不是使用maketrans-使用内置的轻量级:

您可以这样使用它:

parser = MyHTMLParser()
with open(email, 'r', encoding='utf-8') as file:
    parser.feed(file.read())
print(parser.data_set)
然后对结果集进行后处理-f.e

# remove entries consisting purely out of whitespaces \t \n etc.
cleaned = {a.strip() for a in parser.data_set if a.strip()}

什么是单词?如何拆分电子邮件文本?请把这个放进一个盒子里。谢谢,我不想添加到maketrans中,因为我必须搜索单词
parser = MyHTMLParser()
with open(email, 'r', encoding='utf-8') as file:
    parser.feed(file.read())
print(parser.data_set)
# remove entries consisting purely out of whitespaces \t \n etc.
cleaned = {a.strip() for a in parser.data_set if a.strip()}