请教:机器学习对文本做二分类正样本应该怎么取?

2018-04-07 12:24:38 +08:00
 fiht

背景: 想使用 sklearn 训练一个能够鉴别黄色文本的 model。 问题: 负样本(黄色小说)数量有很多,但是正常文本不知道该怎么选取。去人民日报找几万篇新闻会不会因为太片面而产生过拟合的问题?

2553 次点击
所在节点    问与答
21 条回复
zst
2018-04-07 12:30:20 +08:00
找点正常的小说不行吗😳
lsvih
2018-04-07 12:43:38 +08:00
比较常用的:1. 加数据集

2. 欠采样

3. 根据样本比例指定权重
fiht
2018-04-07 12:58:42 +08:00
@zst 是啊,有道理。黄色小说的对立面应该是正常小说。
@lsvih 查阅了一些资料,你的这些技术是解决样本数量不够的。我是不知道怎么选取样本。还是谢谢你的回复,谢谢 :-D
zix
2018-04-07 13:13:05 +08:00
根据使用场景决定你的输入数据的情况,尽量是贴近这个,比如说你就是用来区分小说是不是黄色小说,那就尽量使用小说数据来训练,而不是新闻;如果说你是用在社交网站、论坛上做过滤,那就用这些地方的数据,同时负样本也不应该用黄色小说。
murmur
2018-04-07 13:19:44 +08:00
鉴黄最简单的就是关键字过滤
因为有关部门也是这么认为的。。
fiht
2018-04-07 13:25:14 +08:00
@zix 感谢

@murmur 机器学习能避免对例如 “二十四口交换机” 这样文本的误报,趁着假期玩一玩,不上业务线 hhh
Umix
2018-04-07 13:26:45 +08:00
同样觉得关键词有效的多。。。专家系统了解一下
enzo113
2018-04-07 13:52:52 +08:00
试着用 Anomaly Detection 的思路去做做看?
Shura
2018-04-07 14:23:38 +08:00
@fiht 你举的例子可以不用机器学习,用中文分词(很多 nlp 的轮子,比如 http://thulac.thunlp.org/),然后再用关键词过滤就行了。
imn1
2018-04-07 14:25:42 +08:00
你要追求 100%准确度么?
不然就必然有误报,「二十四口交换机」在自然人看来是低级的误报,但在机器角度,并非低级错误

关键词+词频+关键词库在文章的覆盖度,已经有足够高的判别了
如果要更进一步,恐怕要做语义环境分析了

「黄色文本」的定义清晰么?不清晰的话,如何界定哪些语义环境才是「黄色」?

模糊的定义,也只能模糊分析
Shura
2018-04-07 14:25:44 +08:00
@Shura 当然这个分词的轮子肯定用到了机器学习。。。
fiht
2018-04-07 15:15:35 +08:00
@imn1 @Shura 先跟着风口走...我看阿里的腾讯的内容安全都是机器学习什么什么的..
takato
2018-04-07 15:41:26 +08:00
样本玩多了之后,你会发现,问题在于二分类这个方法论本身就有问题:)
zix
2018-04-07 17:19:24 +08:00
@fiht

你举的例子机器学习无法完全避免,除非你的正样本里能覆盖足够多这种看似有黄色内容但其实不是的数据 —— 但这个很难。

@Shura
@imn1

关键词检测的技术依赖分词,但分词不一定能分对的。最后还是要看使用场景,看 @fiht 是追求召回还是准确(针对黄色内容)。追求召回的的话,可以大量收集相关的关键词和正则,用关键词检测的技术做,上 AC 自动机,性能基本不会有问题,不过我建议还是将匹配到的关键词作为特征,泛化性会更好一些;追求准确的话,尽量构建一个质量较好的样本,比如说负样本可以少点但是要准确,正样本可以多点甚至新闻等不相关场景的数据也可以拿过来作为补充。

另外如 @takato 所言,问题是否用二分类能解决,也要看具体的场景。如果希望能做更细粒度的分析,可以考虑一下句法、观点挖掘一类的东西。

数据集奉上,希望有帮助:

- https://en.wikipedia.org/wiki/Mandarin_Chinese_profanity

- https://github.com/spetacular/bannedwords
takato
2018-04-07 17:28:01 +08:00
@zix 谢谢补充,的确这就是我想表达的。将内容本身升到更高维的表达,在某些情况下的确有利于更彻底地了解内容本身,可以使用的范围包括(但不限于)语义。
murmur
2018-04-07 21:39:37 +08:00
@fiht 不算误报
如果是国内你要上业务的话 这个词一定是在关键字里的
capo
2018-04-08 09:22:18 +08:00
过采样(你现在采用的)、欠采样、再缩放
fiht
2018-04-08 16:26:09 +08:00
@murmur 好像是这么个道理
murmur
2018-04-08 19:34:38 +08:00
补充一点
中文 NLP 的难点永远不在算法上 在于中文实在太牛逼了 我可以利用谐音象形甚至是隐喻的方式用一万种方式描述你的敏感词 尤其是现在图片加视频你更难识别
连快手都被逼紧急组建编辑团队人工审核

还有各大网站天天+1s 的 姿势不知道高到哪里去了
各种网站写情色小说的被逼换着关键字打擦边球

鉴黄本身就是伪需求 这是没有分级制度下被逼的东西 性也好色也好本身就是成年人的正常的需求 是大家喜闻乐见的东西 谁把这算法做到极致不等于自掘坟墓
LikeFHT
2018-04-08 22:09:22 +08:00
@fiht 我觉得,题主有点傻。

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

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

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

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

© 2021 V2EX