• 信息技术手册可视化进度报告 基于jieba的关键字提取技术


    在这一篇博客之前,我已经将word文件中的内容通过爬虫的方式整理到数据库中了,但是为了前台展示的需要,还必须提取出关键字,用于检索。

    我用的是jieba分词GitHub地址https://github.com/fxsjy/jieba

    在项目中主要用到的是jieba分词技术中的提取文章中的关键字的技术;

    基于 TF-IDF 算法的关键词抽取

    import jieba.analyse

    jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=()) 
    sentence 为待提取的文本
    topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20,会按权重大小排序
    withWeight 为是否一并返回关键词权重值,默认值为 False
    allowPOS 仅包括指定词性的词,默认值为空,即不筛选,博客的最下面有词性对照表

    jieba有自己的词库,但是对于互联网行业,由于很多词语都比较新,会造成分词不准,比如“共享单车”分词会被分成“共享”和“单车”,

    解决的办法是可以引入本地词典,有清华大学的开放词库可以下载:http://thuocl.thunlp.org

    引入也很简单:

    jieba.load_userdict('你的词库文档位置')

    除此之外还有一种方法,就是在代码中把不能被分开的关键词加进去,但是不推荐,毕竟面对很大的工作量这种做法不现实,还不如扩充自己的词库。方法如下:

    jieba.add_word("云计算")

    还有可以设置停用词词典,有些字可能出现频率比较高,但是不是你要的关键字,比如“什么”、“现在”、“主流”等这些词,可以设置一个停用词典,

    类似上面的引入本地词典:

    jieba.analyse.set_stop_words('你的停用词典路径')

    下面是我项目中的一点例子,稍作修改,便于需要的同学调试:

    def jiebaFindKey():
        sentence = '''互联网+概念于2012年11月易观国际董事长兼首席执行官于扬首次提出,并于2015年7月4日,国务院印发了《国务院关于积极推进“互联网+”行动的指导意见》。“互联网+”作为知识社会创新2.0推动下的互联网形态演进,成为了中国互联网发展的新形态和新业态。“互联网+”既是互联网的移动与泛在,促进了传统行业与互联网的融合及应用,将数据、计算、知识三者融合,使创新渗入到各行各业,从而开创了创新驱动发展的“新常态”。 '''
        jieba.load_userdict('../resource/it.txt')
        jieba.analyse.set_stop_words('../resource/except.txt')
        # jieba.add_word("云计算")
        keywords = jieba.analyse.extract_tags(sentence, topK=20, withWeight=True, allowPOS=('n','nr','ns'))
        for item in keywords:
            print(item[0], item[1])
        return

    词性对照表

      1. 名词 (1个一类,7个二类,5个三类) 
        名词分为以下子类: 
        n 名词 
        nr 人名 
        nr1 汉语姓氏 
        nr2 汉语名字 
        nrj 日语人名 
        nrf 音译人名 
        ns 地名 
        nsf 音译地名 
        nt 机构团体名 
        nz 其它专名 
        nl 名词性惯用语 
        ng 名词性语素
      2. 时间词(1个一类,1个二类) 
        t 时间词 
        tg 时间词性语素
      3. 处所词(1个一类) 
        s 处所词
      4. 方位词(1个一类) 
        f 方位词
      5. 动词(1个一类,9个二类) 
        v 动词 
        vd 副动词 
        vn 名动词 
        vshi 动词“是” 
        vyou 动词“有” 
        vf 趋向动词 
        vx 形式动词 
        vi 不及物动词(内动词) 
        vl 动词性惯用语 
        vg 动词性语素
      6. 形容词(1个一类,4个二类) 
        a 形容词 
        ad 副形词 
        an 名形词 
        ag 形容词性语素 
        al 形容词性惯用语
      7. 区别词(1个一类,2个二类) 
        b 区别词 
        bl 区别词性惯用语
      8. 状态词(1个一类) 
        z 状态词
      9. 代词(1个一类,4个二类,6个三类) 
        r 代词 
        rr 人称代词 
        rz 指示代词 
        rzt 时间指示代词 
        rzs 处所指示代词 
        rzv 谓词性指示代词 
        ry 疑问代词 
        ryt 时间疑问代词 
        rys 处所疑问代词 
        ryv 谓词性疑问代词 
        rg 代词性语素
      10. 数词(1个一类,1个二类) 
        m 数词 
        mq 数量词
      11. 量词(1个一类,2个二类) 
        q 量词 
        qv 动量词 
        qt 时量词
      12. 副词(1个一类) 
        d 副词
      13. 介词(1个一类,2个二类) 
        p 介词 
        pba 介词“把” 
        pbei 介词“被”
      14. 连词(1个一类,1个二类) 
        c 连词 
        cc 并列连词
      15. 助词(1个一类,15个二类) 
        u 助词 
        uzhe 着 
        ule 了 喽 
        uguo 过 
        ude1 的 底 
        ude2 地 
        ude3 得 
        usuo 所 
        udeng 等 等等 云云 
        uyy 一样 一般 似的 般 
        udh 的话 
        uls 来讲 来说 而言 说来 
        uzhi 之 
        ulian 连 (“连小学生都会”)
      16. 叹词(1个一类) 
        e 叹词
      17. 语气词(1个一类) 
        y 语气词(delete yg)
      18. 拟声词(1个一类) 
        o 拟声词
      19. 前缀(1个一类) 
        h 前缀
      20. 后缀(1个一类) 
        k 后缀
      21. 字符串(1个一类,2个二类) 
        x 字符串 
        xx 非语素字 
        xu 网址URL
      22. 标点符号(1个一类,16个二类) 
        w 标点符号 
        wkz 左括号,全角:( 〔 [ { 《 【 〖 〈 半角:( [ { < 
        wky 右括号,全角:) 〕 ] } 》 】 〗 〉 半角: ) ] { > 
        wyz 左引号,全角:“ ‘ 『 
        wyy 右引号,全角:” ’ 』 
        wj 句号,全角:。 
        ww 问号,全角:? 半角:? 
        wt 叹号,全角:! 半角:! 
        wd 逗号,全角:, 半角:, 
        wf 分号,全角:; 半角: ; 
        wn 顿号,全角:、 
        wm 冒号,全角:: 半角: : 
        ws 省略号,全角:…… … 
        wp 破折号,全角:—— -- ——- 半角:— —- 
        wb 百分号千分号,全角:% ‰ 半角:% 
        wh 单位符号,全角:¥ $ £ ° ℃ 半角:$

     参考:

    https://blog.csdn.net/bozhanggu2239/article/details/80157305

    http://www.cnblogs.com/eastmount/p/5055906.html

  • 相关阅读:
    [译]理解 iOS 异常类型 <🌟>
    LeetCode 24. 两两交换链表中的节点
    解决The operation couldn’t be completed. Unable to log in with account
    <Typora> 常用操作快捷键
    LeetCode 23. 合并K个升序链表
    CSS盒子模型
    CCS属性
    CSS
    form表单
    html
  • 原文地址:https://www.cnblogs.com/w-honey/p/10588852.html
Copyright © 2020-2023  润新知