|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
今天继续来分享基于keras搭建的神经网络实现中文垃圾邮件的自动识别。
上一次的小练习分享了如何处理英语文章,那么其实处理中文语句也是差不多的过程,只不过需要多一步中文的分词,我们可以用jieba来实现。
我从我的邮箱中,随机抽取了300封邮件并人工做好了标记,垃圾邮件标记为[1,0], 非垃圾邮件标记为[0,1]。
邮件我只选取了发件人和主题作为分类依据,格式如下:
网易有钱【有钱福利】投资1块钱,提现50元!3月21日
平安银行集团安全出行意外保障理财调查赠险中心耙徽马免费赠送壹佰万安全出行意外保障登记赠险筷级龙3月20日
Microsoft 帐户团队Microsoft 帐户安全代码23月19日
Microsoft 帐户团队Microsoft 帐户异常登录活动3月19日
随手记团队随手记@您,您有一个888元现金大礼包,马上签收>(AD)3月18日
这300封邮件都保存在mail.txt文件中,方便读取。
数据源准备好以后,接下来就要做数据清洗和词向量转化,这样才能输入计算机被机器学习。def filtermail(s):
sigbol = ',。“”~!@#¥%……&*()——+=【】{}、|;:‘’《》?!#$^&()[]{};:",.<>/?\\-'
for sig in sigbol:
s = s.replace(sig, '')
return s
我定义了一个函数,用来剔除无用的符合
然后用jieba分词进行中文语句的分词,做成词汇表,然后依次统计词频。最后再把得到词向量做成训练模型。
我用了前250组数据进行训练,用最后的50组数据进行模拟测试。
来看看结果吧。
Number 1: Predict: [[ 0.98634988 0.01365006]] , Label : [[1 0]]
Number 2: Predict: [[ 0.203951 0.79604894]] , Label : [[0 1]]
Number 3: Predict: [[ 0.26326886 0.73673117]] , Label : [[0 1]]
Number 4: Predict: [[ 0.97269666 0.02730336]] , Label : [[0 1]]
Number 5: Predict: [[ 0.33845302 0.66154695]] , Label : [[1 0]]
Number 6: Predict: [[ 0.50604987 0.49395013]] , Label : [[1 0]]
Number 7: Predict: [[ 0.35238007 0.6476199 ]] , Label : [[1 0]]
Number 8: Predict: [[ 0.61632556 0.38367444]] , Label : [[1 0]]
Number 9: Predict: [[ 0.23883623 0.76116377]] , Label : [[0 1]]
Number 10: Predict: [[ 0.13383667 0.86616331]] , Label : [[0 1]]
Number 11: Predict: [[ 0.04003907 0.95996094]] , Label : [[0 1]]
Number 12: Predict: [[ 0.79294378 0.20705624]] , Label : [[1 0]]
Number 13: Predict: [[ 0.97742522 0.02257477]] , Label : [[1 0]]
Number 14: Predict: [[ 0.85788316 0.14211683]] , Label : [[1 0]]
Number 15: Predict: [[ 0.52055824 0.47944167]] , Label : [[1 0]]
Number 16: Predict: [[ 0.7491442 0.2508558]] , Label : [[1 0]]
Number 17: Predict: [[ 0.94122136 0.05877867]] , Label : [[1 0]]
Number 18: Predict: [[ 0.94317234 0.05682766]] , Label : [[1 0]]
Number 19: Predict: [[ 0.97556317 0.02443691]] , Label : [[1 0]]
Number 20: Predict: [[ 9.99997854e-01 2.09253676e-06]] , Label : [[1 0]]
Number 21: Predict: [[ 0.87072337 0.1292766 ]] , Label : [[1 0]]
Number 22: Predict: [[ 0.97881579 0.02118419]] , Label : [[1 0]]
Number 23: Predict: [[ 0.46554291 0.53445703]] , Label : [[1 0]]
Number 24: Predict: [[ 0.55039632 0.44960371]] , Label : [[1 0]]
Number 25: Predict: [[ 0.62610424 0.37389573]] , Label : [[1 0]]
Number 26: Predict: [[ 0.39854428 0.60145569]] , Label : [[0 1]]
Number 27: Predict: [[ 0.46135575 0.53864431]] , Label : [[1 0]]
Number 28: Predict: [[ 0.90450335 0.09549663]] , Label : [[1 0]]
Number 29: Predict: [[ 0.83462173 0.16537824]] , Label : [[1 0]]
Number 30: Predict: [[ 0.52225518 0.47774485]] , Label : [[1 0]]
Number 31: Predict: [[ 0.77060652 0.22939353]] , Label : [[1 0]]
Number 32: Predict: [[ 0.64518857 0.35481146]] , Label : [[1 0]]
Number 33: Predict: [[ 0.03967079 0.96032917]] , Label : [[0 1]]
Number 34: Predict: [[ 0.78703678 0.21296316]] , Label : [[1 0]]
Number 35: Predict: [[ 0.91165984 0.08834018]] , Label : [[1 0]]
Number 36: Predict: [[ 0.79146421 0.20853582]] , Label : [[1 0]]
Number 37: Predict: [[ 0.62848341 0.37151659]] , Label : [[1 0]]
Number 38: Predict: [[ 0.81082708 0.18917286]] , Label : [[0 1]]
Number 39: Predict: [[ 0.802876 0.19712406]] , Label : [[1 0]]
Number 40: Predict: [[ 0.71207815 0.28792191]] , Label : [[0 1]]
Number 41: Predict: [[ 0.82638997 0.17361 ]] , Label : [[1 0]]
Number 42: Predict: [[ 0.9101544 0.08984561]] , Label : [[1 0]]
Number 43: Predict: [[ 0.42075378 0.57924622]] , Label : [[1 0]]
Number 44: Predict: [[ 0.73106056 0.26893941]] , Label : [[1 0]]
Number 45: Predict: [[ 0.83003974 0.16996031]] , Label : [[1 0]]
Number 46: Predict: [[ 0.99476117 0.00523886]] , Label : [[1 0]]
Number 47: Predict: [[ 0.93426859 0.06573144]] , Label : [[1 0]]
Number 48: Predict: [[ 0.90724856 0.09275148]] , Label : [[1 0]]
Number 49: Predict: [[ 0.766092 0.23390794]] , Label : [[1 0]]
从结果统计,准确率达到了83%,虽然还不是很高,但毕竟中文的分词难度比英语要大许多,而且我仅仅是根据邮件主题和发件人进行的分类,数据源的信息也并不是十分充分。
源代码及注解:
|
评分
-
参与人数 2 | 荣誉 +20 |
鱼币 +20 |
贡献 +20 |
收起
理由
|
不二如是
| + 10 |
+ 10 |
+ 10 |
超赞,鱼C垃圾处理机制,指日可待! |
冬雪雪冬
| + 10 |
+ 10 |
+ 10 |
支持楼主! |
查看全部评分
|