使用卷积神经网络与代理服务器实现骂人弹幕的自动屏蔽

2017-02-06 15:09:31 +08:00
 Yinz

https://yinzo.github.io/14863637393852.html

使用的是 TensorFlow 后端的 keras , 3000 条弹幕的识别时间在 5s 左右(指的是 model.predict 的单句计时 5s 左右),可能是 model 隐层节点太多了?不知道前辈们有没有一些提高速度的方法呢,如果能帮我指一下方向那将会非常有帮助:D

接下来准备继续学 RNN 以及 LSTM 来继续优化这个玩具分类器:D

另外后排继续寻找广州的机器学习实习岗,希望有 dalao 收留简历在这里

12000 次点击
所在节点    程序员
80 条回复
Yinz
2017-02-07 12:54:26 +08:00
@am241 感谢提醒!确实没在 loss function 上做太多的优化,我后续会尝试加入一些 regularization 来看看效果的 :D
Yinz
2017-02-07 12:57:29 +08:00
@zgqq 其实不必要把目光只放在单条弹幕上,比如说我们可以通过同时分析最近的所有弹幕,若所有弹幕都在说垃圾,只有一条在叫好,那么这也是一个比较明显的特征。若加上一些其他的特征作为辅助,可能就能实现识别反讽的这一目标了。
Yinz
2017-02-07 12:58:08 +08:00
@madao 哈哈哈哈对的,心疼泡泡被带一下午节奏
Yinz
2017-02-07 13:01:00 +08:00
@plqws 你这么一说,好像空耳还真的挺难识别的。。不过一般空耳的句子流畅度、语义一致性和弹幕长度等特征应该会和普通弹幕有所区别,说不定也是可以做到的,这个得下手试过才能知道了
chipmuck
2017-02-07 13:09:21 +08:00
听说 twitch.tv 就是这么屏蔽脏弹幕的
menc
2017-02-07 14:04:09 +08:00
@Livid 需要技术支持么, AI 从业人员可以无偿提供相关支持
menc
2017-02-07 14:05:00 +08:00
@Yinz 别闹,朴素贝叶斯和其他分类器比最大的特点就是对数据分布没有要求
menc
2017-02-07 14:09:07 +08:00
@Yinz char level cnn 最大的作用在于经过混淆的没有语义含义的语句,比如 anti spam :“激.情|裸一聊一加 v : xxx ”
这种,对于弹幕识别, char cnn 不是合适的应用场景。
RNN 和 LSTM 更是了,弹幕没有 context ,你要 memory 有什么用?

这个场景最适合的方法还是传统机器学习方法。这不是一个复杂的 task 。
menc
2017-02-07 14:12:08 +08:00
@Yinz 。。。正则是训练一个分类器首先想到的东西,必须加在 loss 里面,没有正则的 NN 几乎是必然过拟合的
menc
2017-02-07 14:24:25 +08:00
文本是 linear separatable 很强的东西,单在 text classification 方面,用 linear kernel 的 svm 是非常好的做法。
Yinz
2017-02-07 14:36:15 +08:00
@menc 之前的贝叶斯是我按照自己的理解写的,我对朴素贝叶斯的理解可能存在问题,我是这么理解的:

通过独立同分布的训练集,估计出每一类的先验概率 P(c) ,然后再估计出每个属性(词)的条件概率 P(x|c),由此计算出每个词对应的 P(c|x)
这里提到了同分布,如果分布不同,如何能估计出正确的 P(c) 呢

关于 context ,我是打算要把整个视频的弹幕作为 context 的,当然,我还没有实际学习过这两个模型,并没有什么明确的观点。

『没有正则的 NN 几乎是必然过拟合』这个观点请问是你的经验吗,因为在这个项目里我是通过人工观察 train acc 和 validation acc 来选择的模型,相当于人肉 early stopping ,不知道这样的模型是否也是过拟合的呢?

不过看来 bow+svm 确实是个好模型,我需要尝试一下了
menc
2017-02-07 17:49:32 +08:00
@Yinz 不是你找到好的 round 停下就没有过拟合的。参数爆炸带来的过拟合是没法避免的,即使在 loss 最低点也是过拟合状态。
menc
2017-02-07 17:51:29 +08:00
RNN 系列 NN 的重要假设就是, t-k 状态对 t 状态的 label 是有影响的,不是自己强行组合一个 context 就能套用 RNN 。
woniu127
2017-02-07 17:55:48 +08:00
隔壁院所的来支持一下,学习机器学习中
Yinz
2017-02-07 18:08:53 +08:00
@menc 感谢指导:D
我还没有了解过参数爆炸这个概念,还是有很长的路要走。 RNN 这边还没有深入学习,等我学习过后或许提出的观点会更可行一点吧 :D

另外关于贝叶斯的样本分布问题还请赐教 :D
pandachow
2017-02-07 22:02:46 +08:00
最好的效果应该从弹幕本身出发,更多地挖掘弹幕自身的特征。

general 来说,朴素贝叶斯应该是性价比最高的算法。
zgqq
2017-02-07 22:11:23 +08:00
@Livid 好像有看到一个项目是识别标题党的
emric
2017-02-07 22:37:54 +08:00
@plqws 我这里有份过滤表列。大概能过滤 70% 左右空耳。
我最近也在做一个大概有点像 AdBlock 这样的东西过滤 B 站弹幕,以后订阅一下就好。
嗯.... 按照目前的进度... 明年吧...

https://gist.github.com/17/ec36f4923c74cec10d2de2ab4e425154
pandazxx
2017-02-08 09:41:07 +08:00
楼主方便留个联系方式不,推荐个实习岗位
pandazxx
2017-02-08 09:46:53 +08:00
可以加我 qq 63600154

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

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

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

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

© 2021 V2EX