灌水 社区精华帖的热词分析 (菜鸟)

neil · 2016年01月07日 · 最后由 恒温 回复于 2018年04月06日 · 2715 次阅读
本帖已被设为精华帖!

TesterHome_hot_words_analyse

社区精华帖的热词分析(菜鸟),写了个脚本,和大家分享。


源代码

github 地址


流程

主要调用网站自带 api(地址)。

btw: 获取精华帖列表: /topics.json (),接口返回分页有问题,放弃用这个接口。

爬取页面,取得帖子总数 (get_topics_number)

调用 requests 和 re,抓取帖子总数

获取 excellent 帖子 id 列表 (get_excellent_topics_id_list)

获取完整的话题内容:/topics/:id.json
https://testerhome.com/api/v3/topics/3905.json

获取完整的话题内容 (get_topics_id_content)

获取完整的话题内容:/topics/:id.json
https://testerhome.com/api/v3/topics/3905.json

获取某个话题的回帖列表 ()

获取某个话题的回帖列表: /topics/:id/replies.json
https://testerhome.com/api#route-/topics/3905/replies.json

数据清洗 (filter_html)

  • 小尾巴
  • 处理换行
  • HTML 标签
  • url 链接
  • 转义字符

调用 jieba,基于 TF-IDF 算法的关键词抽取,去掉词性过滤

jieba.analyse.extract_tags(topics_all_contents, topK=20, withWeight=True, allowPOS=())

调用 jieba,基于 TF-IDF 算法的关键词抽取,保留词性过滤

jieba.analyse.extract_tags(topics_all_contents, topK=20, withWeight=True, allowPOS=('ns', 'n', 'vn', 'v'))

调用 jieba,基于 TextRank 算法的关键词抽取

jieba.analyse.textrank(topics_all_contents, topK=20, withWeight=True, allowPOS=('ns', 'n', 'vn', 'v'))

需要改进的点

  • 增加并发,提高抓取时间
  • 抓取的帖子内容保存在本地,只抓取新增的帖子,减少对服务器的调用。
  • 对比抓取时间和帖子修改时间,进行增量智能抓取。

热词分析结果

基于 TF-IDF 算法的关键词抽取,去掉词性过滤


基于 TF-IDF 算法的关键词抽取,保留词性过滤


基于 TextRank 算法的关键词抽取


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 16 条回复 时间 点赞

最后最好来个图表。

neil #15 · 2016年01月07日 Author

#1 楼 @xuxu 等晚上用 matplotlib 画个。再来补充下。

不错, 有意思

@doctorq 这个很赞!!

这个很有意思!

这热词缺乏语义,比如 时候、可以之类词,不知道各位有无办法?目前想到自定义语料库来分词,但这个语料库又比较难预测新热词。

#4 楼 @doctorq 太感谢了,用来展示性能测试结果,非常赞

neil #8 · 2016年01月08日 Author

#1 楼 @xuxu
#4 楼 @doctorq
帖子已编辑,用这个工具画图,很好用!赞

#9 楼 @doctorq 图片是截图的,还是用工具栏的 sava as 的,有点模糊

neil #4 · 2016年01月08日 Author

#11 楼 @doctorq

图片在帖子和 git 中更新了。
发现本地保存就是比较糊的,但是 option 复制到百度官网,保存图片明显好很多。

#4 楼 @doctorq 这个好棒哦~~

"可以 “竟然也是关键词

可以再来玩玩

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册