a

alonge

V1

2023/03/21阅读:40主题:橙心

网络舆情LDA

网络舆情

一、研究背景与意义

1 定义

《信息安全辞典》

因事件的刺激而产生的通过互联网传播的人们对于该事件的所有认知、态度、情感和行为倾向的集合。网络舆情是社会舆情在虚拟空间的延伸,并对社会舆情产生反作用。 网络舆情既是共同意见也是单种意见的集合,一方面它需要持有某种认知、态度、情感和行为倾向的人数达到一定的量,否则不能认为是一种舆情。另一方面网络舆情是人们的认知、态度、情感和行为倾向的原初表露,可以是一种零散的,非体系化的东西,也不需要得到多数人认同,是多种不同意见的简单集合。 ****

2 研究背景

  • 随着互联网的发展和各种社交平台的产生和应用,信息以各种不同方式在网络上被传播,社会热点事情在网络中受到广泛关注后,其网络评论常表现为爆发性增长,网络舆情由此发生,对社会热点事情的发展有不可避免的影响。
  • 网络舆情可以是人民民意的集合,可以反作用于社会舆情,所以,网络舆情的管控一直都备受政府部门的关注。

3 研究目的

  1. LDA模型在热点主题识别方面具有准确性,有利于研究者把握该领域的发展状态,确定未来研究方向。
  2. 本研究主要是利用LDA模型探究和分析近年来国内网络舆情研究的研究热点,为未来网络舆情的相关提供理论参考。

二、研究过程

1 数据采集

1. 数据库:中国知网期刊论文

2. 检索式:SU %= '网络舆情' OR SU %= '网络舆论' OR SU %= '公共观点' OR SU %= '网络民意' OR SU %= '网络公共舆论' OR SU %= '舆论' OR SU %= '公共舆论'

3. 检索范围:CSSCI,2020-2023年

检索日期:2023年3月14日

2 数据处理及结果

Python代码

// FileName: ldamodel.py
import jieba
import pandas as pd
import gensim

#读取数据
paper = pd.read_excel('CNKIyuqing.xlsx', names=['Summry'])
paper.head()

Summary

  • 0 ★,微信政治舆情是网民借助微信平台对政治公共事务发表观点、意见和态度的总和。微信政治舆情按照...
  • 1 微信政治舆情是网民借助微信平台对政治公共事务发表观点、意见和态度的总和。微信政治舆情按照其与...
  • 2 [研究目的]研究旨在揭示现代技术条件下以干预公众认知过程为主要特征的网络空间“认知战”,重点...
  • 3 [目的/意义]在互联网快速发展的背景下,舆情危机问题层出不穷,针对社会化媒体进行社会热点事件...
  • 4 【目的】提出并构建网络热点事件话题漂移指数,体现网络热点事件话题变动幅度。【方法】利用LDA...
#jieba分词
jieba.load_userdict('smartlibrary.txt')  #加载主题词表
stoplists = list(pd.read_csv('停用词.txt', names=['w'], sep='\t', encoding='utf-8', engine='python').w) #加载停用词

Building prefix dict from the default dictionary ... Loading model from cache C:\Users\12894\AppData\Local\Temp\jieba.cache Loading model cost 0.539 seconds. Prefix dict has been built successfully.

#定义分词方法
def paperCut(intxt):
    return [w for w in jieba.cut(intxt) if w not in stoplists and len(w) > 2]

#进行分词
wordList = [paperCut(w) for w in paper.Summary]
wordList[:1]
print(wordList)

#绘制词云
import wordcloud
myfont = r'C:\Windows\Fonts\simkai.ttf'
import matplotlib.pyplot as plt
+ s = set()
+ for item in wordList:
+   for i in item:
+       s.add(i)
+ print(s)
+ FreqDist1 = FreqDist(s)
cloudobj = wordcloud.WordCloud(font_path=myfont).fit_words(FreqDist1)
plt.imshow(cloudobj)
plt.axis("off")
plt.show()
cloudobj.to_file("分词词云.png")

词云图片

词云
词云
其他样式词云
其他样式词云
#构建稀疏向量、TFidf计算
from gensim import corpora,models
#from gensim.models.tfidfmodel import TfidfModel

dict = corpora.Dictionary(wordList)
corpus = [dict.doc2bow(text) for text in wordList]
corpus[:2]

tfidf_model = models.TfidfModel(corpus, normalize=False)
corpus_tfidf = tfidf_model[corpus]
corpus_tfidf

<gensim.interfaces.TransformedCorpus at 0x284bf37d070>

#LDA建模
from gensim.models.ldamodel import LdaModel
%time ladmodel = LdaModel(corpus_tfidf, id2word= dictionary,num_topics= 8,passes=5)

Wall time: 181 ms

#输出前8个主题,每个主题10个词
ladmodel.print_topics(num_topics=8, num_words= 10)
  • [(0, '0.007*"网络空间" + 0.007*"社交媒体" + 0.007*"网络热点事件" + 0.007*"短视频" + 0.007*"经验性" + 0.006*"道德治理" + 0.006*"主流情绪" + 0.006*"思政教育" + 0.005*"信息技术" + 0.005*"自动识别"'),
  • (1, '0.007*"系统动力学" + 0.006*"舆情传播" + 0.006*"演化等级" + 0.006*"观点团簇" + 0.005*"网络意识形态" + 0.005*"情感线" + 0.005*"系统性" + 0.005*"突发公共卫生事件" + 0.005*"信息传播" + 0.005*"网络舆情风险"'),
  • (2, '0.007*"涉民族因素" + 0.007*"突发事件网络舆情" + 0.006*"高校网络舆情" + 0.006*"在线问诊" + 0.006*"新冠肺炎疫情" + 0.006*"突发公共卫生事件" + 0.005*"情报感知" + 0.005*"舆情传播意愿" + 0.005*"非虚构写作" + 0.005*"城市拆迁"'),
  • (3, '0.008*"表情符号" + 0.007*"直播带货" + 0.007*"群体极化" + 0.007*"网络舆情风险" + 0.006*"网络意识形态" + 0.005*"话语空间" + 0.005*"舆情引导" + 0.005*"满意度" + 0.005*"网络舆论" + 0.004*"地方政府"'),
  • (4, '0.008*"网络舆情事件" + 0.008*"政治舆情" + 0.006*"政府应对" + 0.006*"文化引领" + 0.006*"网络舆情群体极化" + 0.006*"中美人才战" + 0.005*"网络舆情传播" + 0.005*"教育考试舆情" + 0.005*"涉华报道" + 0.005*"突发公共事件"'),
  • (5, '0.009*"知识图谱" + 0.007*"突发事件" + 0.007*"舆论战" + 0.007*"舆情态势" + 0.007*"舆情事件" + 0.006*"高校网络舆情" + 0.006*"产业链" + 0.006*"圈层扩散" + 0.006*"网络舆情治理" + 0.006*"舆情治理"'),
  • (6, '0.009*"传播审计" + 0.008*"社会情绪" + 0.008*"跨平台社交网络" + 0.007*"舆情反转" + 0.007*"公共价值" + 0.007*"高校网络舆情" + 0.007*"社会热点事件" + 0.006*"利益相关者" + 0.006*"网络舆情事件" + 0.004*"舆情演化"'),
  • (7, '0.007*"分众化" + 0.007*"协同治理" + 0.006*"大数据" + 0.005*"意见领袖" + 0.005*"高峰期" + 0.005*"舆情应对" + 0.005*"微博舆情" + 0.005*"热点话题" + 0.005*"网络舆情危机" + 0.005*"知识图谱"')]
#计算
corpus_lda = ladmodel[corpus_tfidf]
for doc in corpus_lda:
    print(doc)

# 检索和文本内容最接近的主题
query = paper.Abstract[1]
query_bow = dict.doc2bow(paperCut(query))
query_tfidf = tfidf_model[query_bow]
print("转换后:", query_tfidf[:10])

ladmodel.get_document_topics(query_tfidf)
ladmodel[query_tfidf]
import pyLDAvis.gensim
- pyLDAvis.enable_notebook #在pycharm等非实时交互式编译软件中可以不调用

topic_data = pyLDAvis.gensim.prepare(ladmodel,corpus,dictionary)
- pyLDAvis.display(topic_data) #在pycharm等非实时交互式编译软件中可以不调用,调用以下代码

pyLDAvis.save_html(topic_data,'save_blockchain.html')

LDA主题模型部分结果

image
image

主题1相关词组

λ=0
λ=0

主题1相关词组

λ=1
λ=1


分类:

人工智能

标签:

自然语言处理

作者介绍

a
alonge
V1