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

TF-IDF 提取大数量的文章关键字时如何解决算不动的问题?

  •  
  •   LeeReamond · 2022-04-17 23:12:23 +08:00 · 890 次点击
    这是一个创建于 950 天前的主题,其中的信息可能已经有所发展或是发生改变。

    爬取了某大而全论坛的公开帖子,一共爬了一百多万条,因为该论坛下有详细的分类目录感觉用来做 nlp 入门学习数据很合适。

    起步想跑个 tfidf 看看为每个帖子自动加关键字标签的效果怎么样。遇到的问题是,如果用 python 的 sklearn 库实现的话,似乎需要把所有帖子的内容一股脑装进内存里才能算,不光内存爆炸,而且算的巨慢,跑了几次都是卡住几个小时没反应,后来无奈只能关了。

    想问一下类似这种大文本有办法分批处理吗?简单想了一下问题在于,比如所有文章里所有出现的词语的总的表是随着不断加入新的语句而不断变化的,不存在说算完 A 贴的数据后该数据就不会再变了这么一个说法,所以感觉似乎做不到分段计算。如果不能分段计算的话,类似 V2EX 这种,似乎听站长说也是 tfidf ,这么大的数据量又是怎么算出来的呢。

    13 条回复    2022-04-18 14:10:21 +08:00
    westoy
        1
    westoy  
       2022-04-17 23:29:50 +08:00
    V 站好像只是拿结巴的 tf-idf 提取关键词爬一下主帖

    另外, 传下去, 楼主爬了色中色......
    flavoury
        2
    flavoury  
       2022-04-17 23:33:53 +08:00
    lithiumii
        3
    lithiumii  
       2022-04-18 00:32:57 +08:00 via Android
    那就用 genism ?
    Donahue
        4
    Donahue  
       2022-04-18 00:35:09 +08:00
    大力出奇迹~
    或者用 hadoop 集群 mad reduce 实现
    shm7
        5
    shm7  
       2022-04-18 00:55:27 +08:00 via iPhone
    “ 每个帖子自动加关键字标签”
    对每个帖子的文本,跑一下 tfidf 不就好了,jieba 提供了 tfidf 和 textrank 2 个接口。google 的 rake 也不错
    murmur
        6
    murmur  
       2022-04-18 07:51:38 +08:00
    不是对所有内容全装内存,至少得做一次词法分析吧,去掉一些没用的东西,只剩下动词、名词、最好能区分出命名实体
    LeeReamond
        7
    LeeReamond  
    OP
       2022-04-18 09:07:08 +08:00
    @murmur 我筛除了大部分没有实体含义的词性。最后得到的词有三万多个。。所以按 100 万帖子算的话,整个 tfidf 的矩阵大小就是 100 万*三万,太难顶了
    murmur
        8
    murmur  
       2022-04-18 09:11:19 +08:00
    @LeeReamond 同类型的帖子没必要输入那么多,你输入 1000 个帖子是这些,输入 10000 个帖子还是这些
    LeeReamond
        9
    LeeReamond  
    OP
       2022-04-18 09:22:16 +08:00
    @murmur 不是很懂,主要 tf-idf 有个整体词频,我不输入所有贴的话怎么得到总体词频呢。你的意思是取样算出来的和整体也差不多?不过也不知道咋取样啊,比如我导入 A 板块的帖子,那用这个板块产生的词频算 B 板块的 tf 是不是就不太对了
    paopjian
        10
    paopjian  
       2022-04-18 09:58:54 +08:00
    tfidf 就是大力出奇迹,公司里是直接上的服务器.你这个数据量有点过分了,先玩玩一千左右的数据吧
    LeeReamond
        11
    LeeReamond  
    OP
       2022-04-18 10:36:25 +08:00
    @paopjian 有什么其他效果好的 /常见的摘要算法推荐吗?想做点生产能实用的到的东西。。tfidf 其实只是想当个 helloworld 跑,概念和实现啥的都挺简单的,没想到真的跑起来发现完全跑不动。。
    LeeReamond
        12
    LeeReamond  
    OP
       2022-04-18 10:37:14 +08:00
    @LeeReamond 实用就是比如我是百度贴吧的维护者,然后我想给每个帖子一楼加个自动摘要之类的。。像简单能学到的 tfidf 似乎完全应付不了百度贴吧的数据量
    paopjian
        13
    paopjian  
       2022-04-18 14:10:21 +08:00
    目前 nlp 文本摘要还是比较困难的,用 bert 做分类还是比较简单的.
    hanlp 有个摘要功能,你可以去看看,paddlenlp 有对英文的开源摘要功能
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2668 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:18 · PVG 12:18 · LAX 20:18 · JFK 23:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.