月度归档:2020年02月

论坛和社区如何防止垃圾文章和评论

在V2上看到被 spam 评论给弄疯了,如何有效的建立机器学习模型呢?,想起以前做论坛和信息发布平台的一些经历,也曾头痛过,总结自己以及网友的经验如下。

通过关键词库识别spam内容

如何建立关键词库

  • 人工方法收集词库;
  • 导入网上词库;
  • 收集历史内容,然后通过分词方式抽取词;
  • 使用网络上的开源spam机器学习方案;

如何运用关键词库

  • 匹配前利用正则表达式去空白
  • 使用正则表达式对整段内容运用关键词库进行多次匹配
  • 分词然后匹配词,因为分词通常不够精准,所以除非特殊情况不建议,效率上分词加词组匹配的时间不一定会比正则快

通过联系方式特征识别spam内容

如何识别联系方式

  • 数字联系方式:如④,肆等
  • 网址:.com等
  • 手机号、电话号等
  • 邮箱
  • 通讯软件:微信,咸鱼等

如何运用联系方式反spam

  • 正则表达式

通过用户身份识别spam内容

如何识别用户身份

  • 手机号认证
  • 邮箱认证
  • 微信,微博等第三方认证
  • ip地址识别
  • ip归属地识别
  • 手机归属地识别
  • 身份认证:身份证、人脸识别

如何运用身份识别反spam

  • 建立手机号,邮箱,IP,归属地黑名单
  • 注册、登录验证码
  • 答题识别
  • 邀请注册
  • 付费注册

通过操作特征识别spam内容

操作特征识别

  • 发布频率
  • 注册时间

如何运用操作特征识别反spam

  • 注册后一定时间内不允许发帖
  • 发帖消耗积分

识别后的处理

  • 过滤信息,进入待审核
  • 禁言用户(可设置时间)
  • 屏蔽账号(ip,手机号,邮箱等)
  • 屏蔽归属地(可以过一个月再打开)
  • 屏蔽所有用户发布信息(含用户名)

开源方案

商业方案

C++学习资料

电子书

纸质书

如何通过阅读源代码学习?

有选择的阅读

跟着大师学习,让你更接近大师,学习不好的代码,有可能被带进沟里,如何发现值得阅读的代码呢?

  • github star超过10K的
  • 开发参与人数超过5人的
  • 文档完善的(如有多语言版本、区分普通用户和开发者文档等)
  • 用户多的(issue规模可以看出,对应npm,composer,pypi的downloads等)
  • 发展时间等超过半年

阅读步骤

掌握正确的阅读步骤,能够让你少走弯路,起到磨刀不误砍柴工的作用。正确的方法应该是带着问题学习。

  • 运行软件:软件解决了什么问题?
  • 看用户说明书:软件有什么特点?
  • 看开发者文档:软件整体架构是怎样的?
  • 看代码组织结构:当前组织方式的优缺点?
  • 看代码的数据库结构:数据是如何存储的?
  • 针对特定问题解决办法深入学习:我的方式是什么?作者的方式是什么?有没有更好的解决办法?

学习的要点

  • 学习解决问题的思路和方法:思路就是思考的路径,了解他人的思路,我们就有可能能变得和他人一样聪明。思路是方向,方向对了事半功倍,方向错了事倍功半。比如“空间换时间”,“并行”等。
  • 学习编程的技巧:比如类、方法、变量命名,语言特性,设计模式等。
  • 学习软件架构的方法:即代码目录结构,数据存放,数据库设计,数据流,使用的第三方库等。
  • 学习软件的商业逻辑:如软件的界面,交互,用户体验,营销方法等。

Windows自动化打印Office文件(Word,PDF,Excel,PPT等)

Windows(C++)

WPF(.net C#)