公司产品评论区里面老是出现一些乱七八糟的评论,开始用正则表达式,但是太容易绕过了,而且还容易误杀。 后来用了 tfidf+native bayes 做个一个模型,开始还行,后来出现了一些内容嵌入发帖,例如:
深度考察. 2019 年 10 月 23 日 23:16.棋牌游戏一对一真钱_新布丁娱乐大厅拼三张可以作弊吗. 关于棋牌游戏一对一 883321.com 真钱的 创新是民族进步之魂,创新型青年人才是国家的未来。周女士也想提醒广大家长,在孩子入学的问题上,一定要 ... 障用户更加便捷地在快手记录分享生活、学习、娱乐和社交,甚至获得经济收入。
这种类似的文本,使用 tfidf 去提取文本特征,提取出来的特征基本上对这种文本没有什么用,大家有什么好的办法嘛
各位说买服务的兄弟,如果花钱能解决,我只需要劝一劝老板,花钱还是解决不了怎么办? 至于说加入审核,我们公司根本不是什么大公司,没有从事审核的人员,也养不起
1
xfelix 2020-02-20 11:19:14 +08:00
不要光考虑评论内容,试着从其他特征入手,比如 ip 地址,client type 等。
|
2
mcone 2020-02-20 11:20:40 +08:00
之前做过一个类似的,首先我觉得你们思路就不太对
> “但是太容易绕过了” 你们不能简单粗暴地直接拒绝提交评论或者直接屏蔽掉,而是应该让这段内容不对其他用户显示,对发布 spam 的真人 /bot 透明,这样就能轻松很多了 至于模型,我也没有特别好的 idea,之前被折磨地很痛苦,对“在别人的大段真实评论里插入几个字(甚至是火星文)”的广告,我至今都没什么好想法…… |
3
murmur 2020-02-20 11:21:23 +08:00 1
关评论,筛选,实名
|
4
feng12345 2020-02-20 11:23:14 +08:00
看下市面上有没有合适的商用产品,有时候花点钱还是挺值得
|
5
SlipStupig OP |
6
SlipStupig OP @xfelix 能说的具体一点嘛
|
7
huayumo 2020-02-20 11:31:12 +08:00
发帖审核,要么关键字过滤,不然这产品迟早要完,要么加强账号审核,登录什么的
|
8
cmdOptionKana 2020-02-20 11:32:36 +08:00
提高注册门槛,封号。这样广告账号的注册成本提高了,自然就会减少。(比如需要做一些任务才能发评论)
|
9
learnshare 2020-02-20 11:33:53 +08:00
不审核,轻则暂停访问整改,重则永久封掉
|
10
murmur 2020-02-20 11:39:31 +08:00
你们是大陆地区的产品么,没有审核没有实名制是严重问题
|
11
xuanbg 2020-02-20 11:41:59 +08:00
评论的套路难道不都是审核后才能让别人看得到吗?然后问题就变成了怎么审核的问题。一般来说都是机器为主人工补充。就是符合通过和驳回规则的直接就通过或驳回了,剩下的人工来审核。
|
12
SlipStupig OP |
13
cmdOptionKana 2020-02-20 12:10:00 +08:00
@SlipStupig 没有实名制,广告还算小事情了,万一被人家搞,给你发敏感词,再一举报。
|
14
Juszoe 2020-02-20 12:15:00 +08:00
同意二楼,这种很类似贴吧
|
15
SquirrelMAN 2020-02-20 12:47:34 +08:00
有个 iOS 应用 熊猫吃短信 过滤垃圾文本做的非常好
|
16
bitholic 2020-02-20 13:04:59 +08:00 via iPhone
如果有资金,可以考虑第三方反垃圾服务
|
17
WebKit 2020-02-20 13:14:08 +08:00 via Android
大陆地区的评论没有实名,你们怕是要被永久封停
|
18
fonlan 2020-02-20 13:22:32 +08:00 via Android
用这些嵌入式文本继续训练你的模型啊,另外可以用模型给出一个疑似度值,高于某个门限的需要人工审核
|
19
Cbdy 2020-02-20 13:27:02 +08:00 via Android
朴素贝叶斯解君愁
|
20
qq316107934 2020-02-20 13:32:41 +08:00
新注册账号 2h 内禁止发言,账号需要验证邮箱,发帖需要验证码,发帖量在 3 个以下的需要手动发表审核。我就不信还有。
|
21
fantastM 2020-02-20 13:32:57 +08:00
学习一下 t66y 社区的管理方式
|
22
dayeye2006199 2020-02-20 13:35:27 +08:00
试试中文分词+fasttext。这种模型使用了 ngram,所以 棋牌,游戏 这种 2-gram 可能可以被模型捕捉到。
如果在 fancy 一点上深度学习: https://github.com/facebookresearch/pytext |
23
iConnect 2020-02-20 13:39:16 +08:00 via Android
你用机器算法屏蔽,别人也会机器算法反屏蔽,猫和老鼠的游戏。除非你的数据特别大,否则很难彻底杜绝 Spam
|
24
opengps 2020-02-20 13:48:28 +08:00
先买成品敏感词过滤服务,现学来不及
|
25
tfdetang 2020-02-20 13:48:51 +08:00
可以用一个半监督的流程,让机器不停的自己标数据,然后人工抽样复合,再用这些数据生成模型,形成一个正向循环
|
26
DoubleShut 2020-02-20 13:51:03 +08:00
评论,加验证码
|
27
DoubleShut 2020-02-20 13:51:12 +08:00
行为验证码
|
28
littiefish 2020-02-20 13:59:56 +08:00 via iPhone
屏蔽,棋牌,真人,娱乐,一对一,收益,兼职
|
29
sethverlo 2020-02-20 14:01:11 +08:00
亲测显而易见的问题,中文分词 + fasttext 效果拔群,训练速度也快,不用 gpu
|
30
pythonee 2020-02-20 14:09:31 +08:00
这个之前个人博客也很多类似的,应该有一些评论插件或软件吧
|
31
flavoury 2020-02-20 14:10:27 +08:00
你可以看看熊猫吃短信---我没说这个可以解决问题,或许能提供给你一些思路
|
32
zscself 2020-02-20 14:14:55 +08:00
我也是刚接触机器学习,有哪里不对的欢迎指出。楼主你这个算是传统的机器学习方法了吧。我觉得你可以换成神经网络试一试?词嵌入加神经网络,如果样本足够大的话。比如最初级的文本分类问题-情感分类器的一种实现就是 word2vec 来进行词嵌入,然后交给神经网络( RNN、LSTM、CNN 都可以)来生成句子向量来进行判断。
|
33
zgzhang 2020-02-20 14:47:15 +08:00 3
@SlipStupig 以下是我做过的 UGC 内容的风控工作的一些经验,你看下是否有帮助:
1. 无论是正则 match 敏感词或者分词+native bayes 甚至神经网络,如果想绕过一定能绕过,想想异形字、拼音混合、火星文等等,如果支持图片那就更是噩梦,OCR 就是一个非常大的问题。 2. 业界的基本操作基本上都是模型打分,分数不仅仅是依赖内容自身可能还有用户的一些历史行为维度,超出阈值部分人工审核,再审核通过前,仅作者可见(那些自以为沙发的评价) 3. 换个维度解决问题,针对违规用户一定要处罚,禁言、封号,不然永远都是对抗 4. 提高用户门槛,包括注册门槛,发言门槛,总之要提升成本 5. 风控策略防止及其行为和团伙作案,IP、设备维度等维度的限制等 6. 完善的应急制度,针对极度敏感内容要有预案能快速删除,以防封站 |
34
swulling 2020-02-20 14:56:38 +08:00 via iPhone
思路转变下
第一提高评论门槛。发评论需要用手机号登录新用户 2 小时只能发一条评论。一天内评论超过三天上复杂验证码。 第二增加封禁机制,发现一条封一个手机号,来源 ip 封 48h,也是提高 spam 门槛。 第三机器审核和人工审核并行。算法很多很成熟了,重点是思路转变,要识别正常评论,而不是广告评论。火星文,异形字很容易从正常评论筛选出来。然后调低阈值,用人工标注不断的喂数据进去。也可以购买专门的标注服务,不贵。 |
35
summerwar 2020-02-20 15:21:06 +08:00
如果评论之后审核才显示,那么就无利可图,他们也就不发了,因为发了也没用。
审核的时候挑正常的显示就好了 |
36
danhahaha 2020-02-20 16:14:22 +08:00
分词+贝叶斯算法
然后人工添加几百个评论学习 这种最直接简单了,曾经帮一个论坛搞了一个插件,从此各种广告绝迹 |
37
RangerWolf 2020-02-20 16:18:57 +08:00
不知道你有没有看过阿里云或者百度的接口,这种接口几乎不要钱。。。
|
38
xupefei 2020-02-20 16:42:51 +08:00
屏蔽 spam 而已还自己动手训练?现成的 Akismet 有啥不能满足的需求吗
|
39
SlipStupig OP |
40
id7368 2020-02-20 17:38:05 +08:00 via iPhone
先审后发 一个月就没人拿脚本刷了
|
41
shm7 2020-02-20 19:24:59 +08:00 via iPhone
前面有人讲过 fasttext 了,本质是一种结构稍微简单点的 nn,词向量平均一下做特征,代替 tfidf。
你可以试试 fasttext 或者其他网络模型训练,比如扔一个 2 层 lstm+attention 的结构。 还有一点,用模型训练的话,数据不能太少了。你得懂 train val test 数据集合怎么一回事。按你的描述,隔一段时间,你得重新加入新数据训练。 |
42
encro 2020-02-20 19:26:54 +08:00
比如参考 v2,注册后需要一天才能发信息;
比如参考恩山,需要邀请或者花钱才能注册; 33 楼的可以根据实际情况,找到办法解决。 |
43
shm7 2020-02-20 19:29:14 +08:00 via iPhone
tfidf 首先就涉及分词、词语粒度。中文天然不具备很好的分词、词性标注,比起英语。所以你提取词频、tfidf 的特征可能会受到影响。
也可能你数据太少。一般要 1w 到几万条数据。 |
44
encro 2020-02-20 19:32:24 +08:00
重要的是你连自己要防的是对象人还是机器都没有确定。
假设对方是人,如果你不提高注册门槛,根本没法用机器的方式防住, 贴吧,V2 很多论坛都有人工复审 |
45
encro 2020-02-20 19:47:44 +08:00
要自动发现垃圾信息,不用机器学习,简单分词即可:
1,比如将所有历史垃圾内容进行分词,抽取特征词库(其实也可以人工建立和导入网络上的词库); 2,对发布的内容进行分词,如果发现特征词超过一定数量,且存在疑似联系方式的的(这点很重要,因为都会留联系方式,而识别联系方式很简单,甚至有这一点你分词可以不做),直接进入待审核,用户账号进入禁言状态; 但是必须还需要提高作案成本,比如: 1,防止自动发帖工具(验证码,手机注册); 2,防止人工发垃圾帖( IP 黑名单,手机号黑名单); |
46
dadieshaonian 2020-02-20 20:13:20 +08:00
单说模型,为什么不用 bert ?我很奇怪。。
|
47
missdeer 2020-02-20 20:23:33 +08:00
先看看 Akismet 满不满足要求,人家干这行好多年了,好多年前就工作得非常好
|
48
zbz 2020-02-20 20:54:57 +08:00
之前做过相关的 spam 过滤(工程应用,算法没深入研究),简单总结一下:
1. 如果要准确率(95%+),那么召回率会比较低;反之误伤比较大 2. 如果 spam 的内容类别优先,那么用规则准确率+召回率都非常高;当然规则不是简单的正则了,当时实现了一个简单的 DSL 来描述规则,例如出: |
49
encro 2020-02-20 21:18:08 +08:00
新鲜出炉的 BLOG 文章:
论坛和社区如何防止垃圾文章和评论: https://c4ys.com/archives/2058 包含: 通过关键词库识别 spam 内容 通过联系方式特征识别 spam 内容 通过用户身份识别 spam 内容 通过操作特征识别 spam 内容 识别后的处理 开源方案 商业方案 |
50
stabc 2020-02-20 21:21:36 +08:00
有个 stopformspam 的网站,有 SPAM IP 列表,有接口,英文站我试过很好用。
|
51
SlipStupig OP @encro 关键词库基本上别想了,各种符号被绕过,还出现拼接的:弓虽, 行为数据没有,注意看我的 append
|
52
SlipStupig OP @shm7 数据挺多的,tfidf 是基于文本加权,而目前 spamer 要表达的文本 tf-idf 值很低
|
53
wangyzj 2020-02-20 21:51:51 +08:00
我昨天刚买了 spam 午餐肉
看到了 spam 就点了进来 |
54
encro 2020-02-20 22:43:20 +08:00 1
@SlipStupig
曾经负责两个世界排名 1000 以内的社区, 每天发布内容条数十万以上吧, 识别联系方式过滤是最有效的, 逐渐优化后达到 95%以上。 既然是小公司,追求智能不一定划算,因为样本不够,且调试过程比你逐渐完善过滤机制代价更大。 当然如果是公司事少、不考虑成本、或者学习目的,那么肯定是可以的。 我文章中开源方案提到一个,我没有实际使用过,[使用 TensorLayer 训练一个垃圾文本分类器] https://github.com/pakrchen/text-antispam |
55
Eleutherios 2020-02-20 23:56:53 +08:00 via iPhone
熊猫吃短信是开源的么
|
56
Marmot 2020-02-21 00:02:44 +08:00
1,人工审核是绕不开
2,考虑从根源解决,spam 需要通过特征来下手,封账号 |
57
nobird 2020-02-21 00:25:37 +08:00
有些第三方 spam 检测服务的。百度就有。
|
58
DevRoss 2020-02-21 00:56:27 +08:00 via Android
异常检测(领域外检测,out of domain detection )这个估计是你要的关键词
|
59
siyemiaokube 2020-02-21 02:33:10 +08:00 via iPhone
1.提高对方连续发言的成本
2.提高对方识别发言是否通过的成本 |
60
lihongming 2020-02-21 04:16:41 +08:00 via iPhone 2
打蛇打七寸,不用认识蛇,认识七寸就行了。无论他们拿什么混淆,最终总要把用户引导到他们的联系方式(网址、电话号码之类的),所以识别这个就行了。
我以前是做了个库,把各种英文字母和数字的火星文都转成正常字母和数字,然后用正则检查有没有类似于网址和电话号码的子串,有就进入人工审核。 简单一招就干掉了 90%的广告。 |
61
shm7 2020-02-21 09:19:37 +08:00 via iPhone
文本分类本身有很多模型和研究了,套不套得上靠你自己了。模型+规则匹配应该更靠谱
|
62
fiht 2020-02-21 09:29:37 +08:00 1
各位说买服务的兄弟,如果花钱能解决,我只需要劝一劝老板,花钱还是解决不了怎么办? 至于说加入审核,我们公司根本不是什么大公司,没有从事审核的人员,也养不起
------------------------------- 找售前要个试用,万一能解决呢?腾讯云天御了解一下 https://cloud.tencent.com/product/tms |
63
SlipStupig OP @encro 总算有个说到正题上的人了,十分感谢!
|
64
loryyang 2020-02-21 10:03:08 +08:00
这个真的很难,我不知道你评论有多少,不多的话,还不如雇一个人专门来删。先用程序简单定性一下,然后给人来过
这个 spam 评论别看好像很简单,但是要全部干掉也不容易,至少需要一个小团队来专门解决 |
65
yzc27 2020-02-21 10:20:45 +08:00
文本分类试一下 fasttext
|
66
zjuster 2020-02-21 10:52:31 +08:00
你的思路还停留在针对问题发生的事后分析。
一般成功防治的经验是 1、购买第三方服务; 2、评估评论的用途,非生存必备,关闭评论(大概某部门还没找过你们); 3、自己聘用专门的外包进行处理和服务(结合第 2 条,有 UPGC 内容的平台,有关部门是有要求进行有效防范措施,否则可以惩罚至关停网站) 4、要求实名认证等手段,加大垃圾评论发送的成本 等等 如果你还坚持自己处理的,花点时间看下垃圾内容的特征,然后收集这些内容输入用户的物理特征:账号字段、头像、ip 字段、电话号段、活跃时间等等,做用户风控模型。 你可以看看 微博公众号 半佛仙人 |
67
facert 2020-02-21 13:43:11 +08:00
建立一个完整的反作弊系统,从前期数据收集到后期屏蔽方式都需要一个过程。算法模型是可以检测出一些垃圾文本,但也需要一定数据量学习的过程。针对楼主的问题,其实最简单快速的还是关键词策略,对于单一团伙,他们为了达到辨识度再加上机器发布,整体关键词分布都有规律,几种关键词匹配策略一上,基本能干掉 90% 。 前提是做好文本的预处理(简繁转换,数字转换,html 文本提取)。
|
68
gladuo 2020-02-21 14:45:11 +08:00
如果考虑自己做,且有人力标注数据,模型部分可以考虑 fasttext,达到了成本和效率比较好的平衡; nlp 相关问题可以回复我,可以给你一些专业建议;
如其他网友所说,基于 ip id 时间屏蔽,可能是更立竿见影的手段; 解决猫和老鼠的问题,首先还是要想清楚老鼠的动机是什么,能让他就算绕过 spam detection 也没有很大的收益的策略是什么,类似增加账号系统,账号需要有一些非常 postive 的评论,通过审核,认为是 human 用户,才会展示别的评论,有 2 条被判为 spam,整个账号所有评论都被隐藏,类似这样的一些策略,让老鼠觉得非常辛苦,边际效应非常低,他就没有动力去做了; |
69
62D0oo7AxBv8qn17 2020-02-21 17:00:11 +08:00
如果是 wordpress 的话,可装个 Akismet Anti-Spam 插件,效果出奇的好
|
70
SlipStupig OP @gladuo 能加个微信详聊不😊
|
71
gladuo 2020-02-27 15:52:59 +08:00
@SlipStupig Z2xhZGR1bw==
|