100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python文本热点问题挖掘_Pyhon数据分析项目—动态新闻标题热点挖掘.pdf

python文本热点问题挖掘_Pyhon数据分析项目—动态新闻标题热点挖掘.pdf

时间:2018-09-03 07:19:11

相关推荐

python文本热点问题挖掘_Pyhon数据分析项目—动态新闻标题热点挖掘.pdf

《用Python 玩转数据》项目—动态新闻标题热点挖掘

一、背景

新闻标题是新闻的主旨,从新闻标题中可以进行多种内容的挖掘,例如可以爬取一定时

间段内的新闻进行分析获得热点词。新浪各地新闻中的新闻标题形式如下:

url :/news/gnxw/gdxw1/index_1.shtml

可以通过观察网页源代码,可以发现这些新闻标题和时间都有明显的特征:

进博会门票网售1500 元一张?上海警方:假

的 别信

(11 月06 日07:45) 赣州人大常委会原主任骆炳峰再获减刑八个月 (10 月19 日12:27) 辽宁越狱事件调查:部分监狱管理人员非在编

干警

(10 月16 日21:25)

可以利用正则表达式方便的获取新闻标题和发布时间,同时观察网页也可以看到url

是有规律的,所以可以方便地获取多条滚动新闻标题,可以基于这些标题中的热点词构建

词云。

但是并非所有的网站数据都能在源代码中方便地解析到,有的网站由Ajax 动态生成网

页,其数据的获得需要不同的方法,例如新浪全部滚动新闻,页面部分内容示意如下:

url: /roll/#pageid=153&lid=2509&k=&num=50&page=1

页面右上角有一行文字“n 秒后刷新”和一个刷新按钮用于动态生成页面,查看该网

页源代码也确实不能找到网页上显示的新闻标题,这种情况就需要用到浏览器的“开发者

工具”来进行查看。

在浏览器中找到“开发者工具”命令,打开后页面如下图所示:

本页面可以等待其自动刷新或者点击“刷新”按钮记录网页数据日志,点击红色的

“stop recording network log”按钮结束记录。

可以看到动态产生数据的页面Name 是“get?pageid=153…&r=…&callback=…”(蓝色

背景焦点部分) ,观察该页面的Headers 部分,可以看到Request URL 字段,此url 即为真

正产生数据的页面,也可在页面下方的“Query String Parameters”中查看,其为一个字

典,可以传给get()或post()等函数的params 参数后获取需要的网页。

打开该页面可以看到新闻标题的unicode 编码,对其做相应转换即可。注意一定要在

遵循爬虫协议的前提下使用“开发者工具”。

二、算法

以获取一定时间段内新闻标题中的热点词并绘制词云为例,该算法的主要步骤如下:

1. 从新闻网站爬取若干新闻标题并进行解析

1.1 利用Requests 库的get()函数爬取网页,动态网页需要深入查看

1.2 找到其中的新闻标题模式

1.3 利用re 模块中的findall()函数提取出标题,将它们存入文件;

2. 标题分词(Text Segmentation)

要抓热点词首先要将新闻标题进行分词,可利用Python 中著名的分词器jieba (结

巴分词)

逐行用jieba 分词,单行分词的代码如下:

word_list = pseg.cut(subject)

3. 去除停用词

很多如“的”和“我们”这样的功能词对于主题分析并无帮助,因此需要使用停用

词表进行词的过滤

代码如下:

stop_words = set(line.strip() for line in open('stopwords.txt', encoding='utf-8'))

4. 选择名词

jieba 中的词性标签使用了传统方式,例如"n"是名词,“a”是形容词,“v”是动词等。

新闻标题中的名词更能代表热点,可以单独选择

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。