V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Braisdom
V2EX  ›  程序员

请教一下 NLP 的模型

  •  
  •   Braisdom ·
    braisdom · 2021-03-16 22:30:54 +08:00 · 2755 次点击
    这是一个创建于 1352 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设:

    1 )有三个相似的物品(之前不知道这三个物品是否相似),A,B,C
    
    2 )互联网中大家总是在同一个主题下讨论 A,B,C
    

    我如何通过分析互联网中的信息,最终获得这三个物品是相似,有类似的编程模型吗,希望大佬赐教,感谢

    20 条回复    2021-03-18 11:26:00 +08:00
    raycool
        1
    raycool  
       2021-03-16 23:07:28 +08:00
    万物皆可 embedding
    HuLeiY
        2
    HuLeiY  
       2021-03-16 23:11:58 +08:00
    楼上说的在理 最近也在想这个
    Braisdom
        3
    Braisdom  
    OP
       2021-03-16 23:16:27 +08:00
    word2vec 很容易很干扰,而得出的结果离设想的差别太大
    Braisdom
        4
    Braisdom  
    OP
       2021-03-16 23:17:19 +08:00
    @raycool 我的想法是设定一个学习的目标,而不是漫无目的的学习
    gladuo
        5
    gladuo  
       2021-03-16 23:18:51 +08:00
    基本的,对大量文档切词(实体识别)统计 共现 就可以了
    gladuo
        6
    gladuo  
       2021-03-16 23:26:17 +08:00
    有监督的话(如果有一些 doc,里面标了 A B 以及 A B 是相似的),这个任务也许可以看做一个类 Corefrence 的任务,也有一些常规做法,mention 的识别 + coref 的分类判定;
    总体而言 NLP 的任务强依赖于数据和场景,微小的场景和 performance 要求变化,可能合适的方案完全不同
    ljpCN
        7
    ljpCN  
       2021-03-17 01:39:48 +08:00 via iPhone
    transformer 吗 bert 吗
    ljpCN
        8
    ljpCN  
       2021-03-17 01:40:45 +08:00 via iPhone
    attention 机制似乎符合你说的“不是漫无目的地学习”,可以去了解一下 bert
    ljpCN
        9
    ljpCN  
       2021-03-17 01:41:03 +08:00 via iPhone
    attention 机制似乎符合你说的“不是漫无目的地学习”,可以去了解一下 BERT
    ljpCN
        10
    ljpCN  
       2021-03-17 01:41:42 +08:00 via iPhone
    怎么相同内容连发了。。
    DoctorCat
        11
    DoctorCat  
       2021-03-17 02:07:18 +08:00
    SimHash
    kaiju
        12
    kaiju  
       2021-03-17 02:29:33 +08:00
    语言学中有一个 distributional hypothesis,是说如果两个词它们出现的 context 相似,那么它们的意思一般也相似

    这个也是 word2vec 和更古老的 brown cluster 之类的东西的理论基础。

    但是需要注意的是相似不代表一样。比如说代表月份的几个词 January, Feburary, etc, 它们出现的 context 相似,意思相似,但含义不是一样的。
    mumbler
        13
    mumbler  
       2021-03-17 05:03:58 +08:00 via Android
    首先要有足够大的语料,用需要分析的词汇,计算相互之间的词向量距离,最后统计每个词向量最近的词,那就是相关的,阈值需要不断调
    yzbythesea
        14
    yzbythesea  
       2021-03-17 07:41:55 +08:00
    这不是 top modeling 吗?有很多算法啊,LDA,LTSM 等等

    word vector 感觉只能做一个 feature engineering 吧
    yzbythesea
        15
    yzbythesea  
       2021-03-17 07:42:11 +08:00
    topic modeling*
    Braisdom
        16
    Braisdom  
    OP
       2021-03-17 07:52:19 +08:00
    感谢各位,我一个一个测试,word2vec, doc2vec 我测试了,基本可行,但有个问题

    1 ) A,B,C 周围有很多词汇,通过 A 预测 B,或者通过 B 预测 A 和以还可以,但通过其它词汇预测 A,B,C 时就不可用了

    @ljpCN
    @kaiju
    @mumbler
    RingoTC
        17
    RingoTC  
       2021-03-17 10:17:51 +08:00
    @Braisdom 这大概是因为 word2vec 学到了共现关系,因为共现关系是比 semantic 更好学的。如果不想让 word2vec 学到这种共现关系,直接把 A 、B 、C 用统一特殊字符替代掉,或许会有效。
    Braisdom
        18
    Braisdom  
    OP
       2021-03-17 10:28:09 +08:00
    @RingoTC 你的想法倒是一个好想法。
    如果将 A,B,C 进行唯一性 hash 处理,在所有文档中可以通过固定的规则检索,通过周围的词进行预测,只获取符合规则的的词。
    mumbler
        19
    mumbler  
       2021-03-17 19:07:44 +08:00 via Android
    @Braisdom 只跑关键词当然只能关键词相互预测,你要全局,那就所有内容分词后全部跑,这个计算量就大了,需要很强的 GPU 或者超算,否则命不够长
    Braisdom
        20
    Braisdom  
    OP
       2021-03-18 11:26:00 +08:00
    @mumbler 我在尝试其它方法,word2vec 的训练总是有问题,有时候非常好,有时候非常差,真搞不清楚
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1017 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:20 · PVG 04:20 · LAX 12:20 · JFK 15:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.