python 长文本分析——testrank

python 文本分析

功能:摘取文章词语,重点短语,重点句子
环境: pyhton3.6
工具库:textrank``jieba``numpy
方法介绍(重点):
testrank 的算法来自于pagerank
说人话就是,先把文章的句子拆分,然后对每一句都标注,对每一句生成一个无向图,然后无向图会有一个相似度的打分,也就是说两个句子有相似性,那么认为这两个句子对应的节点之间存在一条无向有权边。(无向图的知识)
然后给出这样的分值。
缺点:选出的句子很可能没有什么关系。

1.先去装一个testrank.

pip install testrank

2.装好之后就在py文件中import 使用

#-*- encoding:utf-8 -*-
# from __future__ import print_function
#author:x-bessie
#摘取重点词语,短语,句子
#
import codecs
from textrank4zh import TextRank4Keyword, TextRank4Sentence

#文件目录
text = codecs.open('/test/01.txt', 'r', 'utf-8').read()
tr4w = TextRank4Keyword()

tr4w.analyze(text=text, lower=True, window=2)  # py2中text必须是utf8编码的str或者unicode对象,py3中必须是utf8编码的bytes或者str对象

print( '关键词:' )
for item in tr4w.get_keywords(20, word_min_len=1):
    print(item.word, item.weight)
    # print(item.word)

print()
print( '关键短语:' )
for phrase in tr4w.get_keyphrases(keywords_num=20, min_occur_num= 2):
    print(phrase)

tr4s = TextRank4Sentence()
tr4s.analyze(text=text, lower=True, source = 'all_filters')

print()
print( '摘要:' )
for item in tr4s.get_key_sentences(num=4):
    print(item.index, item.weight, item.sentence)  # index是语句在文本中位置,weight是权重
    # print(item.sentence)   

我的文本:

"英欧办理“离婚”手续并待各国议会批准
2018年11月25日,既非大喜之日,也非大悲之日,而是英国和欧盟27国分别办理第一份“离婚”手续最终文本之日,因而非常重要。
英国与欧盟启动“脱欧”谈判一年多以来终于达成了“脱欧”协议的重大成果,但英国“脱欧”之路仍然漫长,因为“脱欧”协议仍需英国议会与欧盟其他成员国分别表决通过才能生效。
英国于2016年就“脱欧”问题举行全民公投,最终决定退出欧盟。2017年3月29日,英国正式向欧盟递交“脱欧”信函,“脱欧”程序正式启动。根据英国与欧盟之间的协议,英国将在明年3月29日正式“脱欧”。
也许可以说,11月25日英国和欧盟27国为脱欧而办理了第一份“离婚”手续,它“包含两份文件,一是脱欧”协议,二是“英欧未来关系宣言”两份政治文件。这两份文件中,“脱欧”协议具有法律约束力。
欧洲理事会主席图斯克25日当天在社交媒体上发布消息说,欧盟除英国外的27个成员国领导人已经通过了以上两份政治文件。草案强调,欧盟与英国的任何最后协议,不能干涉欧盟的“四大自由”,即欧盟27国成员内部的货物、服务、资本和人员流动自由。草案规定:未来关系将建立在平衡权利和义务,把各方原则考虑在内的基础上。
根据“脱欧”协议规定,英国需向欧盟支付总额约390亿英镑的“分手费”,在明年3月29日英国正式“脱欧”后,设置为期21个月的过渡期,其间英国仍继续留在欧洲共同市场与欧盟关税同盟,享受贸易零关税待遇。协议强调,英欧将着眼于建立“自由贸易区”。
自2016年初英国宣布举行“脱欧”公投起,英国经济就陷入了不确定性之中,两年来这种不确定性已经让英国经济付出了巨大代价。因此,在“脱欧”协议草案达成后,工商界一度曾欢呼雀跃。但由于“脱欧”协议仍需在今年12月份由英国议会与欧盟其他成员国分别表决通过才能生效。而英国已有多个党派表示将反对这份协议。该协议是否会获得英国议会通过,仍然存在不确定性。因此从理论上说,英国仍存在“无协议脱欧”的可能性。
“无协议脱欧”可能对英国、欧盟以及全球经济构成风险,所以被认为是最糟糕选项。国际货币基金组织此前曾警告说,如果出现“无协议脱欧”,英国经济将陷入衰退。英国和欧盟的贸易关系将退回到世界贸易组织框架内,此前英国所享受的一系列优惠政策均将结束。
自信的英国首相特里莎·梅正努力于争取英国议会通过“脱欧”协议,她通过其推特、脸谱账号上传一段名为《60秒读懂“脱欧”协议》的视频,以移民、关税、司法、安防、农业和渔业等领域的英欧未来关系为例,简明扼要阐述“脱欧”给英国带来的种种好处,号召英国民众“共建更光明的未来”。
不过英国民众却出于不同原因而对脱欧协议的反应负面。本来就反对“脱欧”的民众认为,无论达成何种协议,“脱欧”都势必意味着英国经济大势已去。而在支持“脱欧”的民众看来,梅政府与欧盟达成的协议草案并不符合他们的期望,根本就不是他们所希望的“脱欧”!
不言而喻,虽然人们常常把英国脱欧比喻为“离婚”,但实际上两者间的困难程度完全无法相比。因为英国脱欧是让选民在2016年就想清楚要不要脱欧,而在2018年底时,还无人确保:如何才能避免“无协议脱欧”的可能性。

3.分析后 展示输出:

关键词:
欧盟 0.033964108285778755
英国 0.03374448192904959
欧 0.033550565571959165
脱 0.026321851126137063
协议 0.023973311681726894
经济 0.014194576868381529
关系 0.013877947658753276
英国议会 0.013652630224154732
民众 0.011825543578470325
才能 0.011520489047510121
无 0.009491073768319471
贸易 0.008941453019421057
英欧 0.008848306839694498
未来 0.008788018860385749
社交 0.00855379816020474
举行 0.008336503629898934
达成 0.007749489088211964
草案 0.0077460058110831575
陷入 0.007733574607276899
说 0.007616577377735627

关键短语:
英国经济
脱欧
英欧未来关系
无协议脱欧
英国民众
英国脱欧
协议草案
未来关系

摘要:
5 0.051096866421849185 也许可以说,11月25日英国和欧盟27国为脱欧而办理了第一份“离婚”手续,它“包含两份文件,一是脱欧”协议,二是“英欧未来关系宣言”两份政治文件
4 0.048205790418533054 根据英国与欧盟之间的协议,英国将在明年3月29日正式“脱欧”
18 0.048114565046256406 “无协议脱欧”可能对英国、欧盟以及全球经济构成风险,所以被认为是最糟糕选项
1 0.04664622944560654 英国与欧盟启动“脱欧”谈判一年多以来终于达成了“脱欧”协议的重大成果,但英国“脱欧”之路仍然漫长,因为“脱欧”协议仍需英国议会与欧盟其他成员国分别表决通过才能生效

说明:以上的摘取的方式使用句号的形式。我改了库中的源码,改用逗号的形式,对结果的影响还是很大的。

 sentence_delimiters = [',','?', '!', ';', '?', '!', '。', ';', '……', '…', '\n'] #改成逗号的形式   

词语和短语不变,对于句子的变化就成这样了:

摘要:
50 0.0239510531677436 “无协议脱欧”可能对英国、欧盟以及全球经济构成风险
5 0.023240945437290463 英国与欧盟启动“脱欧”谈判一年多以来终于达成了“脱欧”协议的重大成果
49 0.022789969530739994 英国仍存在“无协议脱欧”的可能性
16 0.02236407592771466 11月25日英国和欧盟27国为脱欧而办理了第一份“离婚”手续

版权声明:本文为博主原创文章,未经博主允许不得转载。
https://mp.csdn.net/mdeditor/84772855#

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值