概述
目 录
摘 要 … I
ABSTRACT … III
第 1 章 绪论 … 1
1.1 国内外研究现状与意义 … 1
1.2 本文创新点 … 2
1.3 论文写作思路 … 2
第 2 章 相关技术介绍 … 5
2.1 网络爬虫技术 … 5
2.2 中文分词技术 … 5
2.3 特征选择及权重计算 … 6
2.3.1 特征选择 … 6
2.3.2 特征权重计算 … 7
2.4 文本表示 … 8
2.4.1 布尔模型 … 8
2.4.2 概率模型 … 9
2.4.3 向量空间模型 … 9
2.5 文本聚类算法 … 9
2.5.1 距离算法 … 10
2.5.2 K-means 聚类算法 … 10
2.5.3 二分 K-means 聚类算法 … 11
第 3 章 校园微博热点话题发现系统设计与实现 … 13
3.1 系统设计目标及要求 … 13
3.1.1 系统设计目标 … 13
3.1.2 系统设计要求 … 14
3.2 系统详细架构设计 … 14
3.3 系统功能模块设计与实现 … 15
3.3.1 微博数据获取模块 … 15
3.3.2 微博文本预处理模块 … 18
3.3.2 校园微博热点话题发现模块 … 21 第 4 章 系统功能测试 … 25
4.1 系统运行环境和参数 ............................... 25
4.2 实验数据及处理 ................................... 25
4.3 系统可视化界面 ................................... 27
4.3.1 数据获取界面 ................................ 27
4.3.2 热点话题排行榜 .............................. 27
4.3.3 热点话题热度直方图 .......................... 28
4.3.4 敏感词展示 .................................. 28
总 结 与 展 望 … 31
参 考 文 献 … 33
致 谢 … 35
附 录 … 37
3 . 1 系 统 设 计 目 标 及 要 求
3.1.1. 1 系 统 设 计 目 标
本 文 以 高 校 学 生 微 博 用 户 为 研 究 对 象 ,实 现 对 高 校 学 生 微 博 热 点 话题 进 行 及 时 获 取 、分 析 和 监 控 ,并 根 据 热 点 话 题 类 别 进 行 图 表 方 式 展 示 。系 统 可 视 化 界 面 可 以 实 现 操 作 一 套 热 点 话 题 发 现 的 流 程 ,并 且 实 时 对 校园 微 博 热 点 话 题 进 行 监 控 , 从 而 提 供 微 博 舆 情 的 预 警 。
由 于 高 校 微 博 用 户 群 体 用 户 量 大 ,产 生 的 数 据 量 也 随 之 增 大 ,因 此需 要 一 个 实 时 并 发 的 系 统 不 断 获 取 微 博 数 据 并 分 析 数 据 。
功能性目标 :
( 1 ) 微 博 数 据 获 取 模 块
系 统 获 取 的 文 本 来 源 于 新 浪 微 博 ,用 户 可 以 根 据 自 己 需 求 ,通 过 用户 可 视 化 界 面 操 作 配 置 需 要 监 控 的 微 博 号 ,并 获 取 该 校 园 微 博 号 的 文 本数 据 ,支 持 设 置 爬 取 数 据 页 数 ,一 页 有 十 条 微 博 内 容 ,后 续 可 实 现 支 持配 置 不 同 微 博 号 内 容 存 入 不 同 表 设 置 。
( 2 ) 微 博 文 本 预 处 理 模 块
获 取 数 据 是 通 过 网 页 爬 虫 直 接 获 取 H T M L 文 本 , 因 此 需 要 对 文 本 进 行 提 取 , 提 取 微 博 发 布 内 容 、发 布 时 间 、评 论 数 、点 赞 数 等 。进 一 步 对 提 取 结 果 进 行 清 洗 ,去 除 无 效 或 无 意 义 的 微 博 内 容 及 没 有 评 论 的 微 博 , 对 文 本 进 行 分 词 处 理 及 特 征 选 择 及 提 取 等 操 作 后 构 建 向 量 空 间 模 型 。
( 3 ) 微 博 热 点 话 题 发 现
短 文 本 聚 类 是 微 博 热 点 话 题 发 现 系 统 最 重 要 的 模 块 ,聚 类 结 果 对 于热 点 话 题 发 现 的 准 确 性 有 很 大 影 响 。该 模块只 需 在 可 视 化 界 面 上 操 作 获取 热 点 话 题 步 骤 就 可 以 获 取 热 点 话 题 。
( 4 ) 热 点 话 题 可 视 化 界 面
在上面( 3 )步骤执行获取热点话 题步骤后,可在界 面上以图表 形式 展 示 热 点 话 题 信 息 及 相 关 热 点 关 键 词 , 并 实 现 敏 感 词 展 示 。
3.1.2. 2 系 统 设 计 要 求
校 园 微 博 热 点 话 题 发 现 系 统 是 集 数 据 获 取 、文 本 处 理 、文 本 挖 掘 等模块 ,网 页 爬 虫 、中 文 分 词 等 多 种 技 术 在 一 起 的 系 统 ,所 以 对 各 功 能 模块 的 可 用 性 要 求 比 较 高 。为 了 实 现 对 校 园 微 博 的 热 点 话 题 发 现 ,系 统 应该 具 备 以 下 特 性 :
( 1 ) 实 用 性 和 稳 定 性 。系 统 应 该 以 实 用 为 目 的 ,选 取 合 适 的 软 硬 件环 境 搭 建 系 统 ,并 保 证 系 统 长 时 间 正 常 运 行 ,而 且 需 在 发 生 故 障 发 生 后 , 能 快 速 恢 复 系 统 。
( 2 ) 精 准 性 。数 据 的 来 源 和 提 取 应 该 保 证 准 确 性 ,保 证 获 取 热 点 话题 和 舆 情 监 控 的 准 确 性 。
( 3 ) 可 维 护 性 和 可 扩 展 性 。微 博 数 据 的 不 断 增 长 ,导 致 系 统 各 模 块不 可 避 免 出 现 问 题 。当 出 现 问 题 时 ,就 需 要 系 统 具 备 可 维 护 性 ,快 速 定位 问 题 并 修 复 。考 虑 到 系 统 用 户 的 增 加 ,系 统 流 量 大 而 导 致 系 统 无 法 可用 , 就 需 要 系 统 具 备 可 扩 展 性 , 可 迁 移 到 更 高 配 置 的 软 硬 件 环 境 下 。
由 于 校 园 微 博 用 户 群 体 大 ,微 博 数 据 增 长 量 也 随 之 剧 增 ,所 以 应 该合 理 设 计 系 统 各 个 功 能 模 块 ,保 证 每 个 功 能 模 块 的 可 用 性 ,并 能 保 证 系统 的 抗 压 能 力 。
# -*- coding: utf-8 -*-
"""
~~~~~~~~~~~~~~~~~~~
程序入口
@author guoweikuang
"""
import arrow
from crawl.crawl import run_async_crawl
from handle_text.k_means import run_kmeans
from handle_text.k_means import run_kmeans_by_scikit
from handle_text.k_means import run_min_kmeans
from handle_text.k_means import run_mean_shift
from handle_text.build_vsm import run_build_vsm
from handle_text.build_vsm import run_build_vsm_by_file
from handle_text.utils import classify_k_cluster_to_file
from utils import run_first_cluster
from utils import run_second_cluster
from utils import run_hot_topic
from utils import run_cluster
from login.login import run_login_weibo
from common.utils import classify_k_cluster_to_redis
from crawl.crawl import run_crawl_by_multiprocess
from classify_text.classify import run_classify
from classify_text.main import run_classify_text
from classify_text.config import corpus_path, seg_path, bag_path, test_bag_path, test_seg_path, test_corpus_path
from draw_chart import run_draw_chart, run_draw_top_keyword_barh, run_draw_pie
from handle_text.sensitive import run_sensitive
from classify_text.utils import read_text_old_mysql, save_to_file
from utils import run_old_all_process, run_new_all_process
from handle_text.hot_topic import list_hot_topic
from utils import run_old_second_all_process
from handle_text.draw_chart import run_draw_pie
from handle_text.draw_chart import run_draw_chart
if __name__ == '__main__':
# 登录模块
#run_login_weibo(username='18902304731', password='')
# 异步爬取模块
#run_crawl_by_multiprocess(1, 20, 4)
run_async_crawl(1, 10)
# 读取数据并构建向量空间模型
now = arrow.utcnow().date()
start = arrow.utcnow().shift(days=-120).date()
rows, texts = run_build_vsm(start_time=start, end_time=now)
rows = run_build_vsm_by_file()
# 读取旧数据库模块,用于test
end_time = arrow.get("2016-10-30")
rows = read_text_old_mysql(end_time, days=30, database='weibo')
#save_to_file('old_mysql', rows)
# 分类模块
#run_classify_text(rows)
# k-means 聚类模块
#labels = run_kmeans(k=4, vsm_name="total")
labels = run_kmeans_by_scikit(k=3, vsm_name="total")
#labels = run_min_kmeans(k=2, vsm_name='total')
# 画图模块
#run_draw_pie(db=2)
#run_draw_chart(db=1)
#run_draw_top_keyword_barh(db=2)
#run_draw_cluster_chart(db=1)
# 对聚类结果进行归类模块
#classify_k_cluster_to_redis(labels=labels, texts=rows)
#classify_k_cluster_to_file(labels=labels, texts=rows)
# 敏感词发现模块
results = []
for row in rows:
results.append([row[0], row[1], row[2], row[3].strip()])
#run_sensitive(rows=results)
# 一次及二次聚类模块
#run_second_cluster()
#run_first_cluster('1', '1')
start = '2018-03-01'
end = '2018-04-29'
end_time = arrow.get("2016-10-30")
#run_new_all_process(start, end, k=5)
#run_old_all_process(end_time)
#run_cluster(start, end, k=7)
#run_old_all_process(end_time)
#list_hot_topic(db=1)
#run_old_second_all_process(start_time='1', end_time=end_time)
# 热点话题热度值计算模块
#run_hot_topic()
# 分类并进行正确归类
#run_classify_text(rows)
#run_classify(corpus_path, seg_path, bag_path, test_bag_path, test_corpus_path, test_seg_path)
最后
以上就是灵巧小蜜蜂为你收集整理的Python实现的热点话题发现系统的全部内容,希望文章能够帮你解决Python实现的热点话题发现系统所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复