[Python] 提取新闻关键词的Python爬虫

[Python] 提取新闻关键词的Python爬虫 Textrank算法介绍

  先说一下自动文摘的方法。自动文摘(Automatic Summarization)的方法主要有两种:Extraction和Abstraction。其中Extraction是抽取式自动文摘方法,通过提取文档中已存在的关键词,句子形成摘要;Abstraction是生成式自动文摘方法,通过建立抽象的语意表示,使用自然语言生成技术,形成摘要。由于生成式自动摘要方法需要复杂的自然语言理解和生成技术支持,应用领域受限。所以本人学习的也是抽取式的自动文摘方法。

  目前主要方法有:

    基于统计:统计词频,位置等信息,计算句子权值,再简选取权值高的句子作为文摘,特点:简单易用,但对词句的使用大多仅停留在表面信息。
    基于图模型:构建拓扑结构图,对词句进行排序。例如,TextRank/LexRank
    基于潜在语义:使用主题模型,挖掘词句隐藏信息。例如,采用LDA,HMM
    基于整数规划:将文摘问题转为整数线性规划,求全局最优解。

  textrank算法

  TextRank算法基于PageRank,用于为文本生成关键字和摘要。

# -*- coding:utf-8 -*-
#Author:MercuryYe
importurllib.request
importnumpy as np
importpandas as pd
importjieba.analyse
frombs4importBeautifulSoup
 
 
###爬虫部分###
url="http://www.bishijie.com/kuaixun"
print("请稍等,正在爬行中......")
#模拟浏览器请求
headers=('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36')
opener=urllib.request.build_opener()
opener.addheaders=[headers]
urllib.request.install_opener(opener)
data=urllib.request.urlopen(url).read()
data=data.decode('utf-8')
#将获取到内容扔进BeautifulSoup中转换格式
soup=BeautifulSoup(data,'html.parser')
result=soup.find_all('a', target='_blank')
result=list(set(result))
filter(None, result)
forlinkinresult:
    title=str(link.get('title'))
    filewrite=open('vaule.txt','a+')
    filewrite.write(title)
    filewrite.close()
 
###提取关键词部分###
#定义函数
defread_from_file(directions):
    decode_set=['utf-8','gb18030','ISO-8859-2','gb2312','gbk','Error']
    forkindecode_set:
        file=open(directions,"r",encoding=k)
        readfile=file.read()
        file.close()
        break
    returnreadfile
#读取文件
file_data=str(read_from_file('vaule.txt'))
print("请稍等,正在提权关键词中......\n")
#使用TextRank算法提取关键词
textrank=jieba.analyse.textrank
keywords_TR=textrank(file_data)
print('今日关键词:',set(keywords_TR))

2,079 ° 来自:PC 重庆市
上一篇: 如何轻松入门Python 数据分析?
下一篇: [Python] 爬取拉勾网python招聘信息
您可能还喜欢这些:

亲,沙发正空着,还不快来抢?

评论审核未开启 记住我的个人信息 回复后邮件通知我
Back to Top