V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Windsooon
V2EX  ›  程序员

垃圾文本过滤器

  •  
  •   Windsooon ·
    Windsooon · 2017-11-09 17:11:30 +08:00 · 3480 次点击
    这是一个创建于 2571 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Hello,大家好,我自己做个几个私人项目经常会遇到广告或者垃圾评论,所以写了个文本过滤器。

    这个项目目的是使用机器学习/人工智能来判别垃圾内容,现阶段用户输入句子会先经过分词,然后通过朴素贝叶斯模型判别成正常,色情,赌博,政治敏感四个类别。现在每个类别各使用了 100 个训练数据,辨别准确率大约为 93%。

    特点:

    • 开箱即用,快速上手

      内置预训练模型以及文件缓存,开箱即用。同时使用 numpy 库做矩阵计算,判断速度非常快

    • 准确率高

      现阶段使用了 400 个训练数据,准确率达到 93%。 下载后可以通过运行

        python -m unittest tests.test_bayes
        得到准确率测试结果
      
        This may takes some time
        Completed 0 tasks, 20 tasks left.
        Completed 5 tasks, 15 tasks left.
        Completed 10 tasks, 10 tasks left.
        Completed 15 tasks, 5 tasks left.
        The error rate is 6.83%
      
        测试 20 次,每次从数据集随机取出 20 个数据作为测试数据,剩下的作为训练数据。然后计算平均错误率
      
    • 可定制

    自己可以添加修改数据源,增加训练正确率

    希望大家多提建议或者意见

    https://github.com/Windsooon/Spam-Filter

    13 条回复    2017-11-10 11:23:40 +08:00
    holajamc
        1
    holajamc  
       2017-11-09 17:17:44 +08:00
    已 star~
    Windsooon
        2
    Windsooon  
    OP
       2017-11-09 17:19:16 +08:00
    @holajamc 欢迎提 issue ~
    holajamc
        3
    holajamc  
       2017-11-09 17:21:52 +08:00
    @Windsooon 用过这个 https://github.com/pakrchen/text-antispam 推荐给你参考~
    huangfs
        4
    huangfs  
       2017-11-09 17:26:24 +08:00
    这个样本有点少啊。。
    MaiCong
        5
    MaiCong  
       2017-11-09 17:33:24 +08:00
    我曾经研究过这个垃圾过滤,找到个 datagrand 提供的接口,简单点的 curl 版:

    curl 'http://fileload.datagrand.com:8080/audit' -H 'Content-Type: application/x-www-form-urlencoded; charset=UTF-8' -H 'Accept: */*' -H 'Cache-Control: no-cache' -H 'Referer: http://www.datagrand.com/demo/nlp/' --data 'text=%E6%96%87%E7%AB%A0%E4%B8%8D%E9%94%99%EF%BC%8C%E5%8A%A0V%E8%AF%A6%E8%B0%88%20sb***' --compressed | json_pp

    返回:
    {
    "reaction" : 0.0153,
    "is_insult" : 0,
    "is_ad" : 0,
    "politic" : 0.0153,
    "weight_insult" : 0.2905,
    "weight_ad" : 0.3412,
    "porn" : 0.0855
    }
    noe132
        6
    noe132  
       2017-11-09 20:44:14 +08:00
    一直想学习了解机器学习相关的内容,不知该如何入门?应该了解一些什么技术或者资料?
    billlee
        7
    billlee  
       2017-11-09 21:37:33 +08:00
    @noe132 #6 入门可以看 coursera 上 adrew ng 的课程。
    Windsooon
        8
    Windsooon  
    OP
       2017-11-09 22:07:15 +08:00
    @huangfs 有推荐的文本库吗
    Windsooon
        9
    Windsooon  
    OP
       2017-11-09 22:07:26 +08:00
    @holajamc 谢谢 我会看看
    Windsooon
        10
    Windsooon  
    OP
       2017-11-09 22:08:14 +08:00
    @noe132 coursera 或者 优达学城的都不错,机器学习实战这本书也很好
    noNOno
        11
    noNOno  
       2017-11-09 22:15:42 +08:00
    特征选择是用了词袋么
    Windsooon
        12
    Windsooon  
    OP
       2017-11-09 23:30:20 +08:00
    @noNOno 是的
    wzha2008
        13
    wzha2008  
       2017-11-10 11:23:40 +08:00
    @MaiCong 欢迎使用我司产品
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2670 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:54 · PVG 19:54 · LAX 03:54 · JFK 06:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.