被 spam 评论给弄疯了,如何有效的建立机器学习模型呢?

2020-02-20 11:14:19 +08:00
 SlipStupig

公司产品评论区里面老是出现一些乱七八糟的评论,开始用正则表达式,但是太容易绕过了,而且还容易误杀。 后来用了 tfidf+native bayes 做个一个模型,开始还行,后来出现了一些内容嵌入发帖,例如:

深度考察. 2019 年 10 月 23 日 23:16.棋牌游戏一对一真钱_新布丁娱乐大厅拼三张可以作弊吗. 关于棋牌游戏一对一 883321.com 真钱的 创新是民族进步之魂,创新型青年人才是国家的未来。周女士也想提醒广大家长,在孩子入学的问题上,一定要 ... 障用户更加便捷地在快手记录分享生活、学习、娱乐和社交,甚至获得经济收入。

这种类似的文本,使用 tfidf 去提取文本特征,提取出来的特征基本上对这种文本没有什么用,大家有什么好的办法嘛

8208 次点击
所在节点    程序员
71 条回复
fantastM
2020-02-20 13:32:57 +08:00
学习一下 t66y 社区的管理方式
dayeye2006199
2020-02-20 13:35:27 +08:00
试试中文分词+fasttext。这种模型使用了 ngram,所以 棋牌,游戏 这种 2-gram 可能可以被模型捕捉到。

如果在 fancy 一点上深度学习: https://github.com/facebookresearch/pytext
iConnect
2020-02-20 13:39:16 +08:00
你用机器算法屏蔽,别人也会机器算法反屏蔽,猫和老鼠的游戏。除非你的数据特别大,否则很难彻底杜绝 Spam
opengps
2020-02-20 13:48:28 +08:00
先买成品敏感词过滤服务,现学来不及
tfdetang
2020-02-20 13:48:51 +08:00
可以用一个半监督的流程,让机器不停的自己标数据,然后人工抽样复合,再用这些数据生成模型,形成一个正向循环
DoubleShut
2020-02-20 13:51:03 +08:00
评论,加验证码
DoubleShut
2020-02-20 13:51:12 +08:00
行为验证码
littiefish
2020-02-20 13:59:56 +08:00
屏蔽,棋牌,真人,娱乐,一对一,收益,兼职
sethverlo
2020-02-20 14:01:11 +08:00
亲测显而易见的问题,中文分词 + fasttext 效果拔群,训练速度也快,不用 gpu
pythonee
2020-02-20 14:09:31 +08:00
这个之前个人博客也很多类似的,应该有一些评论插件或软件吧
flavoury
2020-02-20 14:10:27 +08:00
你可以看看熊猫吃短信---我没说这个可以解决问题,或许能提供给你一些思路
zscself
2020-02-20 14:14:55 +08:00
我也是刚接触机器学习,有哪里不对的欢迎指出。楼主你这个算是传统的机器学习方法了吧。我觉得你可以换成神经网络试一试?词嵌入加神经网络,如果样本足够大的话。比如最初级的文本分类问题-情感分类器的一种实现就是 word2vec 来进行词嵌入,然后交给神经网络( RNN、LSTM、CNN 都可以)来生成句子向量来进行判断。
zgzhang
2020-02-20 14:47:15 +08:00
@SlipStupig 以下是我做过的 UGC 内容的风控工作的一些经验,你看下是否有帮助:
1. 无论是正则 match 敏感词或者分词+native bayes 甚至神经网络,如果想绕过一定能绕过,想想异形字、拼音混合、火星文等等,如果支持图片那就更是噩梦,OCR 就是一个非常大的问题。
2. 业界的基本操作基本上都是模型打分,分数不仅仅是依赖内容自身可能还有用户的一些历史行为维度,超出阈值部分人工审核,再审核通过前,仅作者可见(那些自以为沙发的评价)
3. 换个维度解决问题,针对违规用户一定要处罚,禁言、封号,不然永远都是对抗
4. 提高用户门槛,包括注册门槛,发言门槛,总之要提升成本
5. 风控策略防止及其行为和团伙作案,IP、设备维度等维度的限制等
6. 完善的应急制度,针对极度敏感内容要有预案能快速删除,以防封站
swulling
2020-02-20 14:56:38 +08:00
思路转变下

第一提高评论门槛。发评论需要用手机号登录新用户 2 小时只能发一条评论。一天内评论超过三天上复杂验证码。
第二增加封禁机制,发现一条封一个手机号,来源 ip 封 48h,也是提高 spam 门槛。
第三机器审核和人工审核并行。算法很多很成熟了,重点是思路转变,要识别正常评论,而不是广告评论。火星文,异形字很容易从正常评论筛选出来。然后调低阈值,用人工标注不断的喂数据进去。也可以购买专门的标注服务,不贵。
summerwar
2020-02-20 15:21:06 +08:00
如果评论之后审核才显示,那么就无利可图,他们也就不发了,因为发了也没用。

审核的时候挑正常的显示就好了
danhahaha
2020-02-20 16:14:22 +08:00
分词+贝叶斯算法

然后人工添加几百个评论学习

这种最直接简单了,曾经帮一个论坛搞了一个插件,从此各种广告绝迹
RangerWolf
2020-02-20 16:18:57 +08:00
不知道你有没有看过阿里云或者百度的接口,这种接口几乎不要钱。。。
xupefei
2020-02-20 16:42:51 +08:00
屏蔽 spam 而已还自己动手训练?现成的 Akismet 有啥不能满足的需求吗
SlipStupig
2020-02-20 17:32:43 +08:00
@zgzhang 绕过是能接受的,我需要能干掉 85%以上的就行。现状是:
垃圾文本干不掉,正常用户被干扰。

我很想知道你们是基于何种 metric, 对模型进行打分的? 希望能透露一二


@zscself word2vec 如果在正确分词的情况下可能会很好,但是对方发的词千奇百怪,基本上人阅读都困难,你的 word embedding 可能会很 hit hard😭
id7368
2020-02-20 17:38:05 +08:00
先审后发 一个月就没人拿脚本刷了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/646050

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX