作家
登录

手把手教你用 Python 和 Scikit-Learn 实现垃圾邮件过滤

作者: 来源: 2017-07-20 14:06:54 阅读 我要评论

b) 词形还原 --- 这是一种把同一个词典不合情势组合在一路,以便被当做一个零丁项目来分析的过程。举个栗子,"include", "includes" 和 "included" 就可以全部用 "include" 来代表。与此同时,语句的高低文含义也会经由过程词形还原的办法保存下来,这一点不合于词干提取 (stemming) 的办法(注:词干提取是另一种文本发掘的办法,此法不推敲语句的含义)。

安装好了之后,我们只须要将其 import 到我们的法度榜样中就可以应用了。

此外,我们还须要移除一些非文字类的符号(non-words),比如标点符号或者特别字符之类的。要实现这一步有很多办法,这里,我们将起首创建一个词典(creating a dictionary),之后再移除这些非文字类的符号。须要指出的是,这种做法其实异常便利,因为当你手上有了一个词典之后,对于每一种非文字类符号,只须要移除一次就 ok 了。

  2. 创建词典(Creating word dictionary)

一个数据集里的样本邮件一般长如许:

http://t.cn/RKQBl9c

  1. Subject: posting 
  2.  
  3. hi , ' m work phonetics project modern irish ' m hard source . anyone recommend book article english ? ' , specifically interest palatal ( slender ) consonant , work helpful too . thank ! laurel sutton ( sutton @ garnet . berkeley . edu 

你会发明邮件的第一行是标题,大年夜第三行开端才是正文。这里我们只在邮件正文内容的基本上做文本分析,来剖断该邮件是否为垃圾邮件。第一步,我们须要创建一个文字的词典和文字出现的频率。为了创建如许一个“词典”,这里我们应用了练习集里的 700 封邮件。具体实现详见下面这个 Python 函数:

  1. def make_Dictionary(train_dir): 
  2.     emails = [os.path.join(train_dir,f) for f in os.listdir(train_dir)]     
  3.     all_words = []        
  4.     for mail in emails:     
  5.         with open(mail) as m: 
  6.             for i,line in enumerate(m): 
  7.                 if i == 2:  #Body of email is only 3rd line of text file 
  8.                     words = line.split() 
  9.                     all_words += words 
  10.      
  11.     dictionary = Counter(all_words) 
  12.     # Paste code for non-word removal here(code snippet is given below)  
  13.     return dictionary 

词典创建好之后,我们只要在膳绫擎函数的基本上再加几行代码,就可以移除之前提到的那些非文字类符号了。这里我还顺手删掉落了一些邮攀垃圾邮件的剖断无关的单字符,具体拜见如下的代码,留意这些代码要附在 def make_Dictionary(train_dir) 函数的末尾。

  1. list_to_remove = dictionary.keys() 
  2. for item in list_to_remove: 
  3.     if item.isalpha() == False:  
  4.         

      推荐阅读

      云知声梁家恩:智能语音需攻克的难点在哪?

    【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 云知声CTO梁家恩 梁家恩,云知声CTO.2001年卒业于中国科技大年夜学,2006年卒业于中国科学院主动化研究所,获博士学>>>详细阅读


    本文标题:手把手教你用 Python 和 Scikit-Learn 实现垃圾邮件过滤

    地址:http://www.17bianji.com/lsqh/36312.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)