2022年深圳杯建模A题思路: 破除“尖叫效应”与“回声室效应”,走出“信息茧房”

Hi,大家好,这里的建模A君,今年深圳杯和东三省用同一套赛题,这里A君先简单介绍一下A题建模思路,详细思路会放在群里!


1 赛题背景

“尖叫效应”是心理学中的一个著名效应。例如在一个人潮涌动的公众场合,如果有人
突然歇斯底里地尖叫,往往能快速吸引人们的注意力并博取眼球。在网络信息传播中,“尖
叫效应”也无处不在。一些网络平台利用大数据和人工智能,获取并分析用户浏览记录和兴
趣爱好等信息,大量推送段子、恶搞、色情等低俗内容。无论是从满足人们的猎奇心理,还
是引发人们的指责批评,传播者都能从中获取高额的流量和点击率。

“回声室效应”指的是在一个相对封闭的媒体环境中,一些意见相近的声音不断重复,
甚至夸张扭曲,令处于其中的大多数人认为这些声音就是事实的全部 , 不知不觉中窄化自己
的眼界和理解,走向故步自封甚至偏执极化。在现代社会中,由于互联网以及社交媒体的发
展,在网络信息传播中“回声室效应”愈发明显。部分商业网站会分析记录用户的搜寻结果
以及使用习惯,持续地将一位用户所喜欢的内容提供给该用户,导致一个人在同一网站中接
受到的资讯被局限于某个范围内。

“尖叫效应”与“回声室效应”容易导致“信息茧房”的形成。所谓“信息茧房”指的
是,在信息传播中人们自身的信息需求并非全方位的,只会选择自己想要的或能使自己愉悦
的信息,久而久之接触的信息就越来越局限,最终将自己桎梏于像蚕茧一般的“茧房”中,
失去对其他不同信息的了解能力和接触机会。


2 解答问题

在全新的信息传播格局下,如何破除“尖叫效应”与“回声室效应”,走出“信息茧房”,是当前迫切需要解决的现实问题,即如何从信息传输的顶层设计、推荐算法的公平性和广大网络用户的责任担当等方面,帮助公众对新闻事件乃至社会现实有一个相对准确、清晰的认识和判断,并在主流意识和个性化信息之间找到平衡点,使得网络舆论环境更具理性和建设性。请回答以下问题:

  • 1 针对某些话题,在微信、微博、Facebook和Twitter等社交媒体上下载相关数据,定量描述该话题(或信息)的传播过程,并分析其影响因素。该数据分析需至少针对两种不同的话题展开讨论,其中一个话题最终观点趋于相同(中立共识),另一话题最终观点趋于两极分化(观点极化)。

  • 2 建立数学模型刻画中立共识和观点极化的产生机制,探索“尖叫效应”、“回声室效应”与“信息茧房”的形成机制,并讨论话题的吸引度、用户的活跃度、用户心理、不同用户间的相互影响、平台推荐算法等因素对形成这些现象的影响。

  • 3 根据问题2建立的数学模型,制定破除“尖叫效应”和“回声室效应”、规避“信息茧房”的策略。

  • 4 基于上述数据分析与数学模型,针对如何破除“信息茧房”撰写1~2页报告,分别对政府的顶层设计、主流媒体的引领和广大网络用户的责任担当提出相应的解决方案或建议。

3 赛题思路

本题其实已经有现成的模型和解法了,需要先对数据进行爬取,爬取数据后对数据进行舆情分析,分析以后得到大部分主题模型(也就是我们仓间的词图云),或者用LDA模型分析主题也可以。

得到主题后分析关联度,这里需要对信息信息茧房有个评分模型,也就信息茧房的程度值,关于这点我还在思考,思路出来后第一时间开放。

这里先给出LDA的详细实现

数据预处理
该步骤可自行处理,用excel也好,用python也罢,只要将待分析文本处理为csv或txt存储格式即可。注意:一条文本占一行

例如感想.txt:

我喜欢吃汉堡

小明喜欢吃螺蛳粉

螺蛳粉外卖好贵

以上句子来源于吃完一个汉堡还想再点碗螺蛳粉,但外卖好贵从而选择放弃的我

去除停用词

import re
import jieba as jb
def stopwordslist(filepath):
    stopwords = [line.strip() for line in open(filepath, 'r', encoding='utf-8').readlines()]
    return stopwords
 
# 对句子进行分词
def seg_sentence(sentence):
    sentence = re.sub(u'[0-9\.]+', u'', sentence)
    #jb.add_word('词汇')		# 这里是加入自定义的词来补充jieba词典
    sentence_seged = jb.cut(sentence.strip())
    stopwords = stopwordslist('自己搜来的停用词表.txt')  # 这里加载停用词的路径
    outstr = ''
    for word in sentence_seged:
        if word not in stopwords and word.__len__()>1:
            if word != '\t':
                outstr += word
                outstr += " "
    return outstr
 
 
inputs = open('感想.txt', 'r', encoding='utf-8')
 
outputs = open('感想分词.txt', 'w',encoding='utf-8')
for line in inputs:
    line_seg = seg_sentence(line)  # 这里的返回值是字符串
    outputs.write(line_seg + '\n')
outputs.close()
inputs.close()
 

该步骤生成感想分词.txt:

我 喜欢 吃 汉堡

小明 喜欢 吃 螺蛳粉

螺蛳粉 外卖 好贵

句子 来源于 吃完 一个 汉堡 再点碗 螺蛳粉 外卖 好贵 选择 放弃

构建LDA模型

假设主题个数设为4个(num_topics的参数)

import codecs
from gensim import corpora
from gensim.models import LdaModel
from gensim.corpora import Dictionary
 
 
train = []
 
fp = codecs.open('感想分词.txt','r',encoding='utf8')
for line in fp:
    if line != '':
        line = line.split()
        train.append([w for w in line])
 
dictionary = corpora.Dictionary(train)
 
corpus = [dictionary.doc2bow(text) for text in train]
 
lda = LdaModel(corpus=corpus, id2word=dictionary, num_topics=4, passes=100)
# num_topics:主题数目
# passes:训练伦次
# num_words:每个主题下输出的term的数目
 
for topic in lda.print_topics(num_words = 20):
    termNumber = topic[0]
    print(topic[0], ':', sep='')
    listOfTerms = topic[1].split('+')
    for term in listOfTerms:
        listItems = term.split('*')
        print('  ', listItems[1], '(', listItems[0], ')', sep='')

可视化——pyLDAvis

import pyLDAvis.gensim_models
 
'''插入之前的代码片段'''
import codecs
from gensim import corpora
from gensim.models import LdaModel
from gensim.corpora import Dictionary
 
 
train = []
 
fp = codecs.open('感想分词.txt','r',encoding='utf8')
for line in fp:
    if line != '':
        line = line.split()
        train.append([w for w in line])
 
dictionary = corpora.Dictionary(train)
 
corpus = [dictionary.doc2bow(text) for text in train]
 
lda = LdaModel(corpus=corpus, id2word=dictionary, num_topics=4, passes=100)
# num_topics:主题数目
# passes:训练伦次
# num_words:每个主题下输出的term的数目
 
for topic in lda.print_topics(num_words = 20):
    termNumber = topic[0]
    print(topic[0], ':', sep='')
    listOfTerms = topic[1].split('+')
    for term in listOfTerms:
        listItems = term.split('*')
        print('  ', listItems[1], '(', listItems[0], ')', sep='')
        
d=pyLDAvis.gensim_models.prepare(lda, corpus, dictionary)
 
'''
lda: 计算好的话题模型
corpus: 文档词频矩阵
dictionary: 词语空间
'''
 
#pyLDAvis.show(d)		#展示在浏览器
# pyLDAvis.displace(d) #展示在notebook的output cell中
pyLDAvis.save_html(d, 'lda_pass4.html')

运行结果:

在这里插入图片描述

4 其他思路

4.1 第一问思路过程

在这里插入图片描述

4.2 题二问思路过程

在这里插入图片描述

4.3 问题三思路过程

在这里插入图片描述

5 目前写好的论文

在这里插入图片描述

  • 11
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
深圳杯数学建模2022c是围绕城市规划和交通流量,通过建立模型,分析交通模式与城市形态的相互关系,探讨城市可持续发展的问。 具体而言,本要求在有限的城市空间及预算约束下,给出一种优化的交通规划方案,以降低交通拥堵、提升交通效率、改善城市环境等方面的指标。该方案需要考虑不同交通模式间的转换、交通需求对道路网络的影响、不同地区人口密度与出行需求的差异等多方面因素。 针对该目,可以考虑以下思路: 1.了解目要求,深入理解城市规划和交通流量的相关概念,分析各个指标之间的联系。确定最终的优化指标,如交通效率、道路拥堵、绿化率等。 2.建立数学模型,包括交通流模型、城市规划模型、成本模型等,通过模型求解,对交通规划方案进行优化,选择最优方案。 3.在建模过程中,需要考虑不同交通模式间的转换、交通需求对道路网络的影响、不同地区人口密度与出行需求的差异等多方面因素,并且要求模型具有合理性、可重复性、可验证性。 4.如果需要对优化方案进行调整,可以通过加入算法、修改模型参数等方式进行调整,并对调整后的结果进行分析和比较。 5.最后,将所得结果进行可视化展示,以更好地向决策者和公众展示交通规划方案的优劣及其对城市可持续发展的影响。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值