热门推荐
python 绘制文本中的关键词共现矩阵 python共词分析
2024-10-31 21:55


python 绘制文本中的关键词共现矩阵 python共词分析

本文着眼于对疫情期间教育领域新闻的分析,基于 python 语言,利用爬虫获取教育领域的最新新闻,并将其内容进行分词,抓取关键词。在此基础上,根据关键词进行共现分析,并利用 Gephi 软件绘制主题知识图谱,以分析在疫情之下教育行业的关注重点,并以此为鉴,分析未来教育行业的变化动向。

关键词:python 爬虫 Gephi 知识图谱



2.1数据抓取

本文抓取的数据为光明网教育频道( )的新闻。主要有高校、中小学、留学、职教等方面的信息。

2.1.1 网页链接定位

采用 BeautifulSoup 进行正则判断,得到新闻标题链接的后缀。由于后缀有两种类型,所以用了 if/else 判断后缀类型,进而定位每一条新闻对应的真正链接。

2.1.2 获取新闻信息

在获取了链接之后,可以获取新闻的标题以及内容。此时依旧使用 beautifulsoup 获取,并通过分析网页源码可知,正文部分包含于 class 为 u-mainText 中。核心:

2.1.3 文件写入

此处需要注意的是,首先由于文档需要后续进行关键字提取,所以保存为 txt 文件“D:/data.txt”,又为了便于之后共建矩阵的使用,也保存一份 CSV 文件。同时,因为数据量较大,不便于一次性爬取全部所需内容,此处均采用追加模式。

2.1.4 爬取结果展示




python 绘制文本中的关键词共现矩阵 python共词分析_数据


python 绘制文本中的关键词共现矩阵 python共词分析_新闻进行分词_02


2.2 分词

该部分主要利用 jieba 包对已获取的进行中文分词,并提取每条新闻排名前 50 的关键词,将关键词写入"all-data-key.txt"文件中,为下一步实现共现矩阵做准备。

2.3 小结

第一部分主要完成了文字的获取与初步分词处理,并根据分词结果提取高频词,和课内的词云制作思路基本相同,所以在结果和代码方面也有共同之处。


3.1 原理

共现分析常常应用于数据分析的领域,可以对关键词进行分析,比如文献中的关键词、作者、作者机构等等。在其他领域中,如电影电视剧也可以用来研究演员共现矩阵等等,网络上分析金庸笔下武侠世界人物关系时常用共现分析。

3.1.1 简例

对于如下的一组数据:



a 和 b 共现了 2 次,b 和 d 共现了 2 次。则称 a、b 共现的权重为 2,b、d 共现的权重为 2。而 c、m 没有同时出现,则认为 c、m 的权重为 0。

3.1.2 文本共现矩阵

在已获取的"all-data-key.txt"文件中,每一行存储了一则新闻的前 50 个关键词,可以将不同的关键词整合构造一个共现矩阵,通过关键词的配对次数来分析大数据下近日教育的热点词。将词组分别记为 Source 和 Target 便于之后 Gephi 绘图,同时 Weight 记录权重,可以使图像更为直观。下为文本共现矩阵的形式示例。


python 绘制文本中的关键词共现矩阵 python共词分析_新闻进行分词_03


3.2 核心代码

3.3 主题词分析

将文本共现矩阵存入"word-word-weight.csv"文档中,共有 299593 条数据,但其中有大量权重较低的词组对,因而还需要进一步筛选,此时将 Weight 低于 5 的数据都过滤掉,还剩 2884 条数据。


python 绘制文本中的关键词共现矩阵 python共词分析_Powered by 金山文档_04


3.4 共现矩阵分析的优势与不足

在 python 课内学习中,我们学习了制作词云,可以说是数据处理的第一小步,虽然慈云可以快速感知最突出的文字并及时展现出来。但词云仅仅根据词频统计来显示词语使用频度的展现方式有些单薄,无法展现出关键词之间关联性,以及最近一段时间关键词的推演趋势,而共现矩阵可以通过关键词共现频度来逐次反映事件之间的内在,方便我们理解发展变化的内在逻辑,所以需要利用共现矩阵进一步处理数据。

但共现矩阵也明显存在不足,由于大量词语并没有同时出现,所以导致共现矩阵为稀疏矩阵,且在的"word-word-weight.csv"文档中,Weight 为 1 的词组对有 265840 组,高达 88.73%。所以大量的数据都是无效的,因此降低共现分析的时间空间复杂度很有必要。目前可以通过 SVD、PCA 方法进行降维,但计算量较大且时间紧张,不再赘述,将在之后的学习过程中进一步实现。


4.1 数据初始化

4.1.1 构造顶点数组

新建 CSV 文件"entity.csv",将"word-word-weight.csv"文件中的 word1,word2 提取出来,去重,共得到 744 个顶点。


python 绘制文本中的关键词共现矩阵 python共词分析_python_05


4.1.2 构造边集数组

新建 CSV 文件"relationship.csv",将"word-word-weight.csv"文件中的 word1,word2 以及 weight 提取出来,并添加属性"Type"为"Undirected",便于之后在 Gephi 中构建无向图。


python 绘制文本中的关键词共现矩阵 python共词分析_Powered by 金山文档_06


4.2 导入数据

4.2.1 导入顶点数组


python 绘制文本中的关键词共现矩阵 python共词分析_python_07


4.2.2 导入边集数组


python 绘制文本中的关键词共现矩阵 python共词分析_新闻进行分词_08


4.3 图谱绘制


python 绘制文本中的关键词共现矩阵 python共词分析_新闻进行分词_09


最后可以在预览处调整文字显示效果。

4.4 最终效果


python 绘制文本中的关键词共现矩阵 python共词分析_新闻进行分词_10



从主题词图谱可以看出来,前十大关键词为学生、教育、疫情、学校、工作、毕业生、学习、发展、线上、要求。其中有八个词汇为蓝色,词汇“疫情”为红色,词汇“毕业生”为浅绿色。从中可以发现,深蓝色区域对应主要话题为学校教育、社会热点话题以及与国家宏观政策相关的关键词,浅绿色区域对应主要话题为毕业求职相关的关键词,红色区域对应主要话题为与疫情影响相关的关键词,蓝绿色区域对应主要话题为与青少年发展相关的关键词。

    以上就是本篇文章【python 绘制文本中的关键词共现矩阵 python共词分析】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/quote/4023.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多