【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路!

文本发掘(Text Mining,大年夜文字中获守信息)是一个比较宽泛的概念,这一技巧在如今天天都有海量文本数据生成的时代越来越受到存眷。今朝,在机械进修模型的赞助下,包含情感分析,文件分类,话题分类,文本总结,机械翻译等在内的诸多文本发掘应用都已经实现了主动化。
在这些应用中,垃圾邮件过滤算是初学者实践文件分类的一个很不错的开端,例如 Gmail 账户里的“垃圾邮箱”就是一个垃圾邮件过滤的实际应用。下面我们将基于一份公开的邮件数据集 Ling-spam,编写一个垃圾邮件的过滤器。Ling-spam 数据集的下载地址如下:
这里我们已经大年夜 Ling-spam 中提取了雷同数量的垃圾邮件和非垃圾邮件,具体下载地址如下:
http://t.cn/RKQBkRu
下面我们精晓过以下几个步调,编写一个实际可用的垃圾邮件过滤器。
1. 预备文本数据;
2. 创建词典(word dictionary);
3. 特点提取;
- def extract_features(mail_dir):
- files = [os.path.join(mail_dir,fi) for fi in os.listdir(mail_dir)]
- features_matrix = np.zeros((len(files),3000))
- docID = 0;
- for fil in files:
- with open(fil) as fi:
- for i,line in enumerate(fi):
- if i == 2:
- words = line.split()
- for word in words:
- wordID = 0
- for i,d in enumerate(dictionary):
- if d[0] == word:
- wordID = i
- features_matrix[docID,wordID] = words.count(word)
- docID = docID + 1
- return features_matrix
4.练习分类器
4. 练习分类器。
最后,我们会经由过程一个测试数据集对过滤器进行验证。
1. 预备文本数据
如有问题,迎接在文末留言评论辩论。
这里我们将数据集分成了练习集(702封邮件)和测试集(260封邮件)两部分,个中垃圾和非垃圾邮件各占 50%。这里因为每个垃圾邮件的数据集都以 spmsg 定名,是以很轻易区分。
在大年夜部分的文本发掘问题中,文本清理都是第一步,即起重要清理掉落那些与我们的目标信息无关的词句,本例中也一样。平日邮件里一般都邑包含很多无用的字符,比如标点符号,停用词,数字等等,这些字符对检测垃圾邮件没什么赞助,是以我们须要将它们清理掉落。这里 Ling-spam 数据集里的邮件已经经由了以下几个步调的处理:
a) 清除停用词 --- 像 "and", "the", "of" 等这些停用词在英语语句中非经常见。然而,这些停用词对于剖断邮件的┞锋实身份并没有什么卵用,所以这些词已经大年夜邮件中被移除。
推荐阅读
【技巧沙龙】AI开辟者拭魅战营-7分钟打造1个定制技能。7月22号,我们等你一路! 云知声CTO梁家恩 梁家恩,云知声CTO.2001年卒业于中国科技大年夜学,2006年卒业于中国科学院主动化研究所,获博士学>>>详细阅读
本文标题:手把手教你用 Python 和 Scikit-Learn 实现垃圾邮件过滤
地址:http://www.17bianji.com/lsqh/36312.html
1/2 1

网友点评
精彩导读
科技快报
品牌展示