您的位置:首页 > 其它

jieba--做最好用的中文分词组件详解【3】(基于TF-IDF算法的关键词抽取)

2018-11-17 17:28 357 查看
版权声明:本文为博主原创文章,未经允许,不得转载,如需转载请注明出处 https://blog.csdn.net/ssjdoudou/article/details/84189684

写在最前面:

null

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

[code]import jieba.analyse

 

 


  • jieba.analyse.extract_tags(句子,topK = 20,withWeight = False,allowPOS =()) 句为待提取的文本
  • topK为返回几个TF / IDF权重最大的关键词,默认值为20
  • withWeight为是否一并返回关键词权重值,默认值为False
  • allowPOS仅包括指定词性的词,默认值为空,即不筛选
  • jieba.analyse.TFIDF(idf_path = None)新建TFIDF实例,idf_path为IDF频率文件
  • [code]import jieba.analyse
    
    jieba.load_userdict("userdict.txt")
    
    test_sent = (
    "习近平指出,党的十八大以来,在新中国成立特别是改革开放以来我国发展取得的重大成就基础上,"
    "党和国家事业发生历史性变革,我国发展站到了新的历史起点上,中国特色社会主义进入了新的发展阶段。"
    "中国特色社会主义不断取得的重大成就,意味着近代以来久经磨难的中华民族实现了从站起来、富起来到强起来的历史性飞跃,"
    "意味着社会主义在中国焕发出强大生机活力并不断开辟发展新境界,"
    "意味着中国特色社会主义拓展了发展中国家走向现代化的途径,为解决人类问题贡献了中国智慧、提供了中国方案。"
    "全党要提高战略思维能力,不断增强工作的原则性、系统性、预见性、创造性,按照新要求制定党和国家大政方针,完善发展战略和各项政策,以新的精神状态和奋斗姿态把中国特色社会主义推向前进。"
    )
    
    '''newwords = jieba.analyse.extract_tags(test_sent,topK=20,withWeight=True,allowPOS=())
    print(newwords)
    print(len(newwords))'''
    
    tags = jieba.analyse.extract_tags(test_sent,topK=20,withWeight=True)
    for i in tags:
    print(i[0],i[1])
    [code]社会主义 0.30347065067857143
    特色 0.2494810583969524
    中国 0.23065300469790476
    重大成就 0.19999010038666665
    党和国家 0.17205987050514285
    发展 0.17024116906857145
    意味着 0.166825010784
    历史性 0.16414236044266667
    不断 0.13729106061942858
    以来 0.13348870033542856
    以新 0.11385492859904761
    起来 0.11318115561571429
    战略思维 0.10872162859238095
    预见性 0.10339195442190476
    取得 0.10109781234819049
    大政方针 0.09852694848095239
    习近平 0.09439708195628572
    原则性 0.09422232825466667
    我国 0.09401383695733333
    久经 0.09339364847380953

    这里返回了20个权重最大的词,并不区分词性。

     

    关键词提取所使用逆向文件频率(IDF)文本语料库可以切换成自定义语料库的路径

    [code]jieba.analyse.set_idf_path(file_name)#file_name为自定义语料库的路径
    [code]import jieba.analyse
    
    jieba.load_userdict("userdict.txt")
    jieba.analyse.set_idf_path("./jieba-master/extra_dict/idf.txt.big")
    
    test_sent = (
    "李小福是创新办主任也是云计算方面的专家\n"
    "时至今日,滑雪运动已经成为一项越来越受欢迎的运动项目\n"
    "例如我输入一个带“韩玉赏鉴”的标题,在自定义词库中也增加了此词为N类\n"
    "「台中」正確應該不會被切開。mac上可分出「石墨烯」;此時又可以分出來凱特琳了。"
    )
    
    '''newwords = jieba.analyse.extract_tags(test_sent,topK=20,withWeight=True,allowPOS=())
    print(newwords)
    print(len(newwords))'''
    
    tags = jieba.analyse.extract_tags(test_sent,topK=20,withWeight=True)
    print(tags)
    [code]
    中国 0.9108394287923809
    发展 0.569274642995238
    社会主义 0.569274642995238
    以来 0.34156478579714283
    不断 0.34156478579714283
    起来 0.34156478579714283
    特色 0.2494810583969524
    我国 0.22770985719809522
    取得 0.22770985719809522
    党和国家 0.22770985719809522
    历史性 0.22770985719809522
    重大成就 0.19999010038666665
    意味着 0.166825010784
    指出 0.11385492859904761
    十八 0.11385492859904761
    成立 0.11385492859904761
    改革开放 0.11385492859904761
    基础 0.11385492859904761
    发生 0.11385492859904761
    变革 0.11385492859904761

    可以看出使用了自定义的语料库后词频发生明显变化。

    先到这儿,一边上英语课一边写的,晚上还有最优化,阿西吧

    阅读更多
    内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: