美文网首页
如何使用Neo4j来检测垃圾邮件

如何使用Neo4j来检测垃圾邮件

作者: 松爱家的小秦 | 来源:发表于2017-12-15 00:18 被阅读0次

    可以登录微云数聚公司官网直接尝试一下Neo4j

    登录http://www.we-yun.com:7474/browser/

    MATCH m=(s:Person)-->(e:Email)-->(r:Person) WHERE e.title=~'.*普通发票.*' RETURN m LIMIT 15

    这里只返回了15个节点。如果我们要查到垃圾邮箱的源头,会怎么做?通常垃圾邮箱的标题或者内容会有关于促销,招聘等等字眼。

    这里我们就通过对所有邮件的标题遍历,查找关键字“发票”。如果经常发这种邮件的人,邮件数量一定很多。这里我们设置当有这种信件

    的数量超过105,就输出他。

    MATCH m=(s:Person)-->(e:Email)-->(r:Person)

    WHERE e.title=~'.*发票.*'

    WITH s,COUNT(e) AS num,COLLECT(e) AS emails,COLLECT(r) AS recevies

    WHERE num > 105

    RETURN s,emails,recevies

    得到图:

    很明显就发现,几乎所有发票都是来自这个邮箱yrdudthfffxddh@126.com

    那么就可以发现这个主犯了。那么这样就结束了吗?不不,我在上文说过“反向提问”是很有价值的,既然找到了主犯,那么我们不妨多看看,

    他还会经常发什么邮件,这类邮件有什么特征。从中挖掘出这类人,发垃圾邮箱的“套路”。

    MATCH m=(s:Person)-->(e:Email)-->(r:Person)

    WHERE s.account=~'yrdudthfffxddh@126.com'

    RETURN s,e,r

    仔细观察,你会发现,这个主犯的邮件除了含“发票”的字眼,还有“来电恰谈”,“费用优惠”等字眼。那么这样我们就可以记住这样的字眼,

    下次就可以过滤这类字眼的邮件。

    通过上面这个例子,应该能体会到,图数据库,在处理垃圾邮件,查找信息的优势了。特别是在处理“反向提问”的问题。并且

    查询效率都是在毫秒级别的。

    相关文章

      网友评论

          本文标题:如何使用Neo4j来检测垃圾邮件

          本文链接:https://www.haomeiwen.com/subject/lkxrwxtx.html