V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
fiht
V2EX  ›  问与答

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

  •  
  •   fiht · 2018-04-07 12:24:38 +08:00 · 2537 次点击
    这是一个创建于 2426 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  2018-04-08 16:27:21 +08:00
    update: 还是就匹配关键字吧,感谢各位大佬的支持
    21 条回复    2018-04-09 15:03:34 +08:00
    zst
        1
    zst  
       2018-04-07 12:30:20 +08:00 via Android
    找点正常的小说不行吗😳
    lsvih
        2
    lsvih  
       2018-04-07 12:43:38 +08:00
    比较常用的:1. 加数据集

    2. 欠采样

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

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

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

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

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

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

    @Shura
    @imn1

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

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

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

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

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

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

    鉴黄本身就是伪需求 这是没有分级制度下被逼的东西 性也好色也好本身就是成年人的正常的需求 是大家喜闻乐见的东西 谁把这算法做到极致不等于自掘坟墓
    LikeFHT
        20
    LikeFHT  
       2018-04-08 22:09:22 +08:00
    @fiht 我觉得,题主有点傻。
    fiht
        21
    fiht  
    OP
       2018-04-09 15:03:34 +08:00
    @LikeFHT 在探索的道路上走了点弯路,怎么能说是傻呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6019 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 06:14 · PVG 14:14 · LAX 22:14 · JFK 01:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.