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

一段文字如何提取核心关键字?

  •  
  •   tianxiacangshen · 2017-11-09 08:52:01 +08:00 · 4769 次点击
    这是一个创建于 2601 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比如一段关于比特币的文字,怎么将里面最核心的关键字提取出来?提取 3-5 个,比如下面这段文字:

    “ SegWit2x 升级定于 11 月 16 日开始生效。该升级旨在提升比特币交易的速度,并将同时提高交易的手续费。不过,过去几个月来,越来越多的比特币开发者不再支持比特币的升级。
    业内大佬向 CNBC 表示:“我们的目标一直是比特币顺利的升级。不幸的是,很显然我们没有足够的共识来进行升级。继续目前的道路可能分裂社区,并阻碍比特币的发展。随着比特币交易手续费的提升,开发人员一直希望数字货币社区能获得共识,解决这一问题。””

    程序上怎么实现提取核心的关键字?我的思路是这样:

    1、词库里面匹配,将文章全部打散成关键字

    2、检测重复次数最多的关键字

    3、去掉通用关键字(做一个通用关键字表,每个关键字都有相关通用率)

    4、去掉通用之后保留的 3-5 个应该就是核心关键字了

    可行吗?
    13 条回复    2017-11-09 11:27:56 +08:00
    neosfung
        1
    neosfung  
       2017-11-09 08:52:59 +08:00 via iPhone   ❤️ 1
    Tfidf
    mpich
        2
    mpich  
       2017-11-09 08:53:42 +08:00   ❤️ 1
    tfidf textrank 都是不错的 baseline
    l00t
        3
    l00t  
       2017-11-09 08:56:06 +08:00
    你的思路就是 TFIDF。我觉得就单篇文章而言,还是 textrank 的效果好些。TFIDF 太机械了。
    y051313
        4
    y051313  
       2017-11-09 09:05:28 +08:00
    scws 可以提取关键词
    tedcon
        5
    tedcon  
       2017-11-09 09:51:29 +08:00
    这个常规做法不应该先分词, 去除停顿词,然后根据词性来获取预选词,在预选词里面统计频率最高的为关键词
    Ginson
        6
    Ginson  
       2017-11-09 09:56:46 +08:00   ❤️ 1
    ![核心词提取]( )

    是否符合预期?
    tianxiacangshen
        7
    tianxiacangshen  
    OP
       2017-11-09 10:03:15 +08:00
    @Ginson 应该比特币作为一个关键字,最核心的应该是比特币这个关键字
    Ginson
        8
    Ginson  
       2017-11-09 10:05:34 +08:00
    @tianxiacangshen 语料库的问题,jieba 自带的语料库没有把“比特币”作为一个单词来看待,要手动弄一下。
    princelai
        9
    princelai  
       2017-11-09 10:25:21 +08:00
    自定义词库的效果

    jieba.analyse.textrank(s,topK=10)
    Out[10]: ['升级', '交易', '提升', '社区', '共识', '货币', '希望', '开发人员', '手续费', '旨在']

    jieba.analyse.tfidf(s,topK=10)
    Out[11]: ['比特币', '升级', '共识', '手续费', 'SegW', '2x', '定于', '11', '16', '生效']
    EricJia
        10
    EricJia  
       2017-11-09 10:42:03 +08:00
    pagerank
    gyorou
        11
    gyorou  
       2017-11-09 10:47:03 +08:00
    别提了,特么 segwit2x 都无限延期了。
    tianxiacangshen
        12
    tianxiacangshen  
    OP
       2017-11-09 10:55:50 +08:00
    @princelai 显然第二种比较好
    princelai
        13
    princelai  
       2017-11-09 11:27:56 +08:00
    @tianxiacangshen 那是因为我有自己的 stopword 和 userdict,而且我训练的 tfidf 权重文件正好也是金融类相关的,只是有点小,如果再加上 wikipedia 的语料库应该会有更好的效果
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4985 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 88ms · UTC 01:20 · PVG 09:20 · LAX 17:20 · JFK 20:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.