战略论坛
视频社交洞悉(上)
前言讨论视频社交还要从YouTube说起。这个名字揭示了创始人对它的定位:「You」代表社交,「Tube」代表视频,YouTube 就是要用视频的方式来颠覆社交。当时的 Facebook 才刚刚创立一年,但社交是互联网创业永远的热门话题。2005 年初,拿十几万美元年薪的26岁eBay工程师陈士骏离职创业。他目标很纯粹:两年时间用 10 万美元做点有意思的东西出来。假如失败就继续回大公司上班。伙同两位工程师,一位设计师,搞出了 YouTube。
上线 3 个月后,YouTube 就放弃了「视频约会平台」的想法,这并不是创始人有意为之,而是在多次试错之后的无奈之举。陈士骏事后有一段这样的反思:2005 年 5 月,我们很快放弃了交友和约会网站的方向。实际上,我到现在还都认为 YouTube 是一个独特的网站。它没有太多互动社交的元素,人们的社交圈子不在上面。也许你在 YouTube 上也会认识新朋友,但这通常是因为你就是喜欢他放到网站上面的内容,而不是因为你跟他是朋友。YouTube 上的一切社交都是以内容本身为核心的。但今天的中国创业者们有另一种论调:社交软件是有生命周期的,如今 00 后已经成年,他们会有自己的社交平台,而视频是这些伴随网络长大的年轻人的语言。一批新的创业者以「视频社交」为名,再一次对社交巨头发起了挑战。
视频社交的市场现状
“视频社交”通俗来讲就是基于“视频”的社交。视频在这里有两层概念:一是指内容样式,二是指技术形态。这个在下个章节在展开细说。我们先来汇总看当前市场围绕视频领域做“社交”的五个流派:1.直播:16-17年“千播大战”之后,直播行业马太效应凸显。除了具备社交属性之外,直播形态由传统的秀场逐渐向细分垂直领域转型,且通过“直播+”不断融合新场景,满足新需求同时带动了上下游一系列产业的发展,也造就了「口红一哥」李佳琦。2.视频群聊。直播鼻祖Meerkat失败后,下一个产品便是Houseparty,一时间风靡欧美。Houseparty模式更接近qq上的“讨论组”,可以随机拉好友开启群聊。另外一种模式主题聊天室,可以理解为语音房间的升级版。有房间和管理,用户可以选择围观、上麦、语音、视频。以上两种模式都是直播形态下满足视频陪伴的心理需求。3.短视频社区:以抖音快手为代表的15秒UGC短视频。陌陌升级「用视频认识我」、腾讯重启微视、微博推出故事……巨头纷纷入场,短视频已经成为一个产品的基建标配。4.随机匹配。韩国产品azar最先使用这个模式,随机匹配的两个陌生人直接开启视频聊天。本地化之后的Tiki加入了送礼延时、美颜滤镜、AR表情等功能。半年后被copy to world,icon同样是猴子的monkey上线。之后陌陌也推出了随机匹配功能,soul推出脸基尼虚拟表情匹配。5.沟通工具派。简言之就是类似微信的理念,做熟人的视频沟通工具,代表如snapchat、多闪、DOV等。这五个流派总结起来是目前市场上三类产品定位:内容社区,陌生社交,熟人工具。
视频社交的概念拆解
我们先梳理清楚与社交(我们也可以换一种说法如「关系」或「沟通」)相关的几个维度:媒介:图文,语音,视频时间:同步,异步类型:社区,社交,社群关系:发现,建立,维护定位:内容社区,陌生人社交,熟人IM工具形态:上个章节列举的具体产品形态
「视频」和「社交」的概念拆解上文中已经提到“视频”的两层概念:一是指内容样式,二是指技术形态。什么意思呢?前者指的一种内容的展示样式,含有名词(n.)的含义。比如说你看这条视频很搞笑。后者是指一种技术形态,含有动词(v.)的含义,比如有人给我打视频电话。前者对应的时间形态是异步、静态的,对应的产品形态是内容社区,比如抖音。后者应的时间形态是实时、动态的,对应的产品形态是社交动作,比如tiki。从内容样式这个点延伸出来的产品类型是社区,人与人之间的关系是“发现”和“关注”类的弱关系。比如你看到抖音上一个跳舞很好看的姑娘,你给她点赞,给她评论,关注她,跪舔她…不出意外是她看都不看你一眼。这是视频内容社区定位下的异步化、中心化内涵的外在表现。而从技术形态这个点延伸出来的产品类型,或许才真的可以称为是社交 ,这个时候人与人之间的关系可以是一种相对的“强关系”,我们通过一定的策略和玩法让用户相互建立关系,并且维护关系。建立关系是从陌生人到好友的过程,狭义的讲,这个环节才真正称得上是陌生人社交,最好的产品形态是tiki那种随机匹配。维护关系是指成为好友甚者本身就是熟人之间沟通的工具,也就是视频电话。把视频社交拆解后做一个整合,会发现和开始列出的社交维度可以一一对应。最终的产品形态也就是产品具体的功能导入。
视频社交的本质特点
从前的日色变得慢,车,马,邮件都慢,一生只够爱一个人。从写一封信要好几个月寄到,到有了火车、汽车、飞机,再有电话、互联网,人与人之间的交流和互动,一直是从异步到同步的发展。
Snapchat 真的只是隐私限时看,然后看过销毁吗?不是。其实它想表达的状态是“我那时候的状态”——喝醉酒的样子,你看完就结束了,就不应该被保留下来了,于是它才会有时限的需求,比如局限在 10 秒之内。按照这个理解,相对应的,视频社交是表达“我现在的样子”和“我想看你现在的样子”。因此,“视频社交”的本质一种“实时社交”。内含“实时”这个基因,相对于微信、陌陌、微博、贴吧,这些压力较低的“异步社交”,视频社交有明显的优劣势:优势:高度同步,互动性强,社交信号立刻能得到响应和回馈。更加沉浸感,就和真实聊天一样,体验更亲切自然。更加丰富直观的感官刺激,特别是连线帅哥美女时。筛选出颜值自信用户,视频呈现“社交优势”更直观。劣势:社交压力大。你的任何反馈都在对方眼里。对于极度敏感、特别好“面子”的中国人来说,视频社交的压力可能与线下见面差不多。无法碎片化。因是实时同步,无法做到一边聊天一边干其他事情,必须沉浸其中。容易太刺激。因为感官刺激更丰富,易出现暴露狂。破冰很困难。异步社交有充足都时间去思考回复,突然面对面之后,很容易出现尬聊。未完待续…视频社交的用户到底是谁?视频社交有哪些机会点?这些话题将在下篇进行讨论,敬请期待。
犀牛鸟学问| SMP 2019 走进腾讯
连办八届,SMP年会共话社会媒体;携手六年,腾讯持续支持产学交流2012年11月24日,哈尔滨工业大学刘挺教授在微博上发起活动“社会媒体与语言处理研讨会”。12月8日,百余位来自自然语言处理、大数据、传播学、社会学等领域的学者相聚在中科院计算所,召开了首届“中国中文信息学会社会媒体与语言计算研讨会”。自此研讨会每年举办一次,专注于以社会媒体处理为主题的科学研究与工程开发,并于2014年起升级为“全国社会媒体处理大会”,现已成为社会媒体处理的重要学术活动。2012年首届会议掠影基于哈工大-腾讯联合实验室平台,腾讯于2014年起开始参与SMP。过去的六年,腾讯每年都会通过大会或论坛报告等形式,分享在社会媒体处理相关研究和应用领域的洞察和实践。腾讯历年参加SMP掠影走进腾讯,SMP参会师生观展厅、聊技术、话未来2019年,SMP来到了腾讯总部所在地深圳。8月16日,SMP2019组委会携手腾讯高校合作联合举办“犀牛鸟学问-SMP2019走进腾讯”活动,邀请了来自全国各地参加SMP2019的10余位老师和50余位学生来到腾讯滨海大厦,参观了解了腾讯的历史文化、业务布局和前沿技术,聆听了三位专家研究员的技术报告并深入交流。参观腾讯滨海大厦展厅腾讯AILab副总监张峰腾讯 AI Lab 副总监张峰作了题为信息流产品中的内容理解的报告。该报告介绍了信息流产品中,针对内容的分类、标签提取以及低质量内容识别方面的相关技术。腾讯微信技术架构部数据中心画像平台技术负责人陈谦
腾讯微信技术架构部数据中心画像平台技术负责人陈谦作了题为NLU在用户画像业务中的应用的报告。他提到,“庞大数据中,有一类用以刻画用户各种维度的数据特征称为用户画像。通过分析社交互动的公开内容,可以洞察用户的喜好和兴趣,进而做出更加准确的用户画像。”该报告从腾讯业务使用的内容数据展开,通过展现遇到的实际问题,探讨NLU技术如何与画像业务相结合。腾讯广告自然语言处理及用户建模技术负责人王莉峰腾讯广告自然语言处理及用户建模技术负责人王莉峰作了题为腾讯广告中的NLP应用的报告。他提到,“NLP作为最核心的底层支撑技术之一,在腾讯广告系统中可谓无处不在,包括但不限于用户语义理解、上下文语义理解、广告语义理解、智能创意制作、定向标签推荐以及智能审核等。”该报告帮助大家了解了互联网广告中的多方共赢生态、腾讯广告系统中真实的NLP需求、基础 NLP技术框架、大规模中文商业词库构建系统WordBase、深度学习NLP基础平台DeepText以及对NLP未来研发方向的思考。走进SMP2019,腾讯AI研究员畅谈交互机器人,犀牛鸟精英人才研学前沿新技术腾讯AILab智能客服技术方向负责人唐国华作技术报告
在SMP2019的社交机器人分论坛上,腾讯AILab智能客服技术方向负责人唐国华作了题为智能客服在腾讯游戏中实践的报告,介绍了在游戏场景下的腾讯智能客服的相关技术。他提到,“智能客服在各行各业都得到了较为广泛的应用。在腾讯,智能客服技术在游戏领域的应用是实现‘AI+社交’功能的一个重要方面,以1v1拟人对话形式,集攻略、资讯和功能于一身,提升了玩家体验。目前此技术已覆盖了腾讯内部90%的五星与六星游戏产品,为亿级用户提供服务,玩家满意度高达91.6%。”犀牛鸟精英人才培养计划相关领域入选学生参加SMP2019
在腾讯犀牛鸟精英人才培养计划的连接和支持下,5名入选该计划的同学也注册参加了此次SMP大会的讲习班、主会场及相关分论坛。了解学习了前沿技术的热点问题及研究现状,开拓了学术视野和研究思路,为未来开展更好的研究工作奠定了一定的基础。
Hugo集成社交分享插件
很多站长开发网站时为了推广页面,或者获得更多的回访和流量,会在网站页面添加 “分享到” 插件,用来发布到某些社交网站。因此社会化分享是很多网站常用的功能之一,国内也有很多专业的公司在做,比较出名的包括 j*this,B*hare 等。不过很悲伤的是,这些公司的产品,无一例外的具有一个特点:奇丑无比。丑就算了,还不允许别人修改其设计,结果就是,再好的 UI 设计也毁在这些插件手里了。还好我发现了一款简单高效的社交分享组件,只看一眼便可以确认这就是我要寻找的那个它。直接上预览,你看完一定会喜欢上: 1. 简介share.js 是一款简单高效的社交分享组件,直接引入使用即可,无须依赖其他库。它有以下这些特点:一个标签完成初始化 自定义启用/禁用分享站点 更美观的 UI 体验 基于标签data属性轻松实现分享数据的自定义 支持分别对不同站点设置分享内容 同页面个分享组件 支持npm安装2. 引入 share.js由于我的博客使用的是 hugo,而且使用的主题是 Jimmy Song 的 beautifulhugo,官方文档提供的安装方式不适用,需要稍作改动。如果你使用的是其他主题,安装方式类似,你可以自己研究一下。导入静态资源 首先克隆 share.js 的代码仓库:1$ git clone https://github.com/overtrue/share.js然后分别将 css、js 和 fonts 拷贝到 beautiful 主题中的相应目录下:1
2
3
4# <hugo_home> 表示 hugo 的根目录
$ cp share.js/css/share.min.css <hugo_home>/themes/beautifulhugo/static/css/
$ cp share.js/js/social-share.min.js <hugo_home>/themes/beautifulhugo/static/js/
$ cp -r share.js/fonts/* <hugo_home>/themes/beautifulhugo/static/fonts/默认的 css 样式图标太小,我稍微调整了一下,将图标放大一点,修改后的 css 内容如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51$ cat <hugo_home>/themes/beautifulhugo/static/css/share.min.css
@font-face{font-family:"socialshare";src:url("../fonts/iconfont.eot");src:url("../fonts/iconfont.eot?#iefix") format("embedded-opentype"),url("../fonts/iconfont.woff") format("woff"),url("../fonts/iconfont.ttf") format("truetype"),url("../fonts/iconfont.svg#iconfont") format("svg")}
.social-share{font-family:"socialshare" !important;font-size:16px;font-style:normal;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:0.2px;-moz-osx-font-smoothing:grayscale}
.social-share *{font-family:"socialshare" !important}
.social-share .icon-tencent:before{content:"\f07a"}
.social-share .icon-qq:before{content:"\f11a"}
.social-share .icon-weibo:before{content:"\f12a"}
.social-share .icon-wechat:before{content:"\f09a"}
.social-share .icon-douban:before{content:"\f10a"}
.social-share .icon-heart:before{content:"\f20a"}
.social-share .icon-like:before{content:"\f00a"}
.social-share .icon-qzone:before{content:"\f08a"}
.social-share .icon-linkedin:before{content:"\f01a"}
.social-share .icon-diandian:before{content:"\f05a"}
.social-share .icon-facebook:before{content:"\f03a"}
.social-share .icon-google:before{content:"\f04a"}
.social-share .icon-twitter:before{content:"\f06a"}
.social-share a{position:relative;text-decoration:none;margin:4px;display:inline-block;outline:none}
.social-share .social-share-icon{position:relative;display:inline-block;width:42px;height:42px;font-size:25px;border-radius:50%;line-height:37px;border:2px solid #666;color:#666;text-align:center;vertical-align:middle;transition:background 0.6s ease-out 0s}
.social-share .social-share-icon:hover{background:#666;color:#fff}
.social-share .icon-weibo{color:#ff763b;border-color:#ff763b}
.social-share .icon-weibo:hover{background:#ff763b}
.social-share .icon-tencent{color:#56b6e7;border-color:#56b6e7}
.social-share .icon-tencent:hover{background:#56b6e7}
.social-share .icon-qq{color:#56b6e7;border-color:#56b6e7}
.social-share .icon-qq:hover{background:#56b6e7}
.social-share .icon-qzone{color:#FDBE3D;border-color:#FDBE3D}
.social-share .icon-qzone:hover{background:#FDBE3D}
.social-share .icon-douban{color:#33b045;border-color:#33b045}
.social-share .icon-douban:hover{background:#33b045}
.social-share .icon-linkedin{color:#0077B5;border-color:#0077B5}
.social-share .icon-linkedin:hover{background:#0077B5}
.social-share .icon-facebook{color:#44619D;border-color:#44619D}
.social-share .icon-facebook:hover{background:#44619D}
.social-share .icon-google{color:#db4437;border-color:#db4437}
.social-share .icon-google:hover{background:#db4437}
.social-share .icon-twitter{color:#55acee;border-color:#55acee}
.social-share .icon-twitter:hover{background:#55acee}
.social-share .icon-diandian{color:#307DCA;border-color:#307DCA}
.social-share .icon-diandian:hover{background:#307DCA}
.social-share .icon-wechat{position:relative;color:#7bc549;border-color:#7bc549}
.social-share .icon-wechat:hover{background:#7bc549}
.social-share .icon-wechat .wechat-qrcode{display:none;border:1px solid #eee;position:absolute;z-index:9;top:-205px;left:-84px;width:200px;height:192px;color:#666;font-size:12px;text-align:center;background-color:#fff;box-shadow:0 2px 10px #aaa;transition:all 200ms;-webkit-tansition:all 350ms;-moz-transition:all 350ms}
.social-share .icon-wechat .wechat-qrcode.bottom{top:40px;left:-84px}
.social-share .icon-wechat .wechat-qrcode.bottom:after{display:none}
.social-share .icon-wechat .wechat-qrcode h4{font-weight:normal;height:26px;line-height:26px;font-size:12px;background-color:#f3f3f3;margin:0;padding:0;color:#777}
.social-share .icon-wechat .wechat-qrcode .qrcode{width:105px;margin:10px auto}
.social-share .icon-wechat .wechat-qrcode .qrcode table{margin:0 !important}
.social-share .icon-wechat .wechat-qrcode .help p{font-weight:normal;line-height:16px;padding:0;margin:0}
.social-share .icon-wechat .wechat-qrcode:after{content:'';position:absolute;left:50%;margin-left:-6px;bottom:-13px;width:0;height:0;border-width:8px 6px 6px 6px;border-style:solid;border-color:#fff transparent transparent transparent}
.social-share .icon-wechat:hover .wechat-qrcode{display:block}主要修改了这一段:1.social-share .social-share-icon{position:relative;display:inline-block;width:42px;height:42px;font-size:25px;border-radius:50%;line-height:37px;border:2px solid #666;color:#666;text-align:center;vertical-align:middle;transition:background 0.6s ease-out 0s}将分享插件嵌入到网页中 为了将分享插件嵌入到每篇文章的网页中,我们需要修改一些模板。首先需要引入 css 样式,通过修改文件 /themes/beautifulhugo/layouts/partials/head.html,在其中引入 share.min.css。1
2
3
4
5
6
7
8
9
10...
<!-- bootcss cdn 国外访问太慢 -->
<!--
<link rel="stylesheet" href="https://cdn.bootcss.com/KaTeX/0.7.1/katex.min.css" />
<link rel="stylesheet" href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.min.css" />
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" />
-->
<link rel="stylesheet" href="{{ "css/main.css" | absURL }}" />
<link rel="stylesheet" href="{{ "css/share.min.css" | absURL }}" />
...然后在 /themes/beautifulhugo/layouts/partials/目录下创建一个 html。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16$ cat <hugo_home>/themes/beautifulhugo/layouts/partials/share.html
<div class="social-share" data-initialized="true" data-wechat-qrcode-title="不扫别后悔">
<center>
<font style="font-size:18px;color:darkcyan;">分享到:</font>
<a href="#" class="social-share-icon icon-weibo"></a>
<a href="#" class="social-share-icon icon-wechat"></a>
<a href="#" class="social-share-icon icon-twitter"></a>
<a href="#" class="social-share-icon icon-linkedin"></a>
<a href="#" class="social-share-icon icon-facebook"></a>
<a href="#" class="social-share-icon icon-qq"></a>
<a href="#" class="social-share-icon icon-qzone"></a>
</center>
</div>
<!-- css js -->
<script src="https://hugo-picture.oss-cn-beijing.aliyuncs.com/social-share.min.js"></script>修改模板 /themes/beautifulhugo/layouts/_default/single.html,加载 share.html。1
2
3
4
5
6
7
8
9
10
11
12
13
14<div class="container" role="main" itemscope itemtype="http://schema.org/Article">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<!-- post metadata-->
{{ if isset .Params "postmeta" }}
{{ else }}
{{ partial "postmeta.html" . }}
{{ end }}
<article role="main" class="blog-post" itemprop="articleBody" id="content">
...
{{ .Content }}
{{ partial "share.html" }}
</article>
...如果你想让某些页面不开启分享插件,可以通过参数 (.Params.noshare) 来控制是否加载分享插件。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<div class="container" role="main" itemscope itemtype="http://schema.org/Article">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<!-- post metadata-->
{{ if isset .Params "postmeta" }}
{{ else }}
{{ partial "postmeta.html" . }}
{{ end }}
<article role="main" class="blog-post" itemprop="articleBody" id="content">
...
{{ .Content }}
{{ if not (.Params.noshare) }}
{{ partial "share.html" }}
{{ end }}
</article>
...这样我们就可以在页面中通过 noshare 参数来控制了。如下是不想加载分享插件的文章的 meta 信息参数:1
2
3
4
5
6---
title: xxxxxx
date: xxxxxx
...
noshare: true
---3. 更多关于分享插件的更多自定义配置请参考代码仓库的 README。
DZ论坛修改字体
遇见自己喜欢的字体,怎样引用到自己的网站呢?这里以DZ论坛为例,当然这种方法适用所有网站。下载自己喜欢的字体下载自己喜欢的字体,字体格式为.ttf。我们可以到第一字体网去下载http://www.diyiziti.com/转换字体格式将下载好的字体转换成.eot、 .woff、 .woff2三种格式,文件名可以是任意英文可以根据自己的喜好命名(不要设置为中文就可以了)。上传字体将转换好的.eot、 .woff、 .woff2三种格式字体上传到自己网站任何位置(建议上传到CDN这样字体渲染速度比较快)。调用代码代码语言:javascript复制@font-face {
font-family: "kali";
src: url(https://bbskali.cn/.woff2) format("woff2"),
url(https://bbskali.cn/.woff) format("woff"),
url(https://bbskali.cn/.ttf) format("truetype"),
url(https://bbskali.cn/.eot) format("embedded-opentype"),
url(https://bbskali.cn/.svg) format("svg");
}PS:上面的代码里.ttf和 .svg的文件是没有的,但是路径要和.eot、 .woff、 .woff2三种格式路径保持一致,否则字体将不会正常显示。代码语言:javascript复制body {
font-family: kali!important;
}!important:优先级最高!版权属于:逍遥子大表哥本文链接:https://cloud.tencent.com/developer/article/1921451按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。
Github 常用社交用语
有人说过,优秀的程序员是懒惰的,他们总是找到一件事情中的规律,然后用最简单的方式解决它;在平时的交流中更是如此,所以很多人认为他们很难交流。
那么你是否注意到在 Github 的 issues 和 PR 中经查出现一些缩写吗?这里,我们就收集一些在社区交流中经查用到的一些缩写,有的在配合CI/CD 的工具下,已经实现了丰富的功能,一些则经常用在平时的交流中。我们简单的将常用的,和一些高级玩家用的分开来,让我们使用一些常用的缩略语以提高交流效率,避免的使用一些低频率缩略语,为别人减少一些疑惑。常见缩略语PR PR Pull Request.
这是 Github 中的一个常用功能,合并拉取请求,用以发起将自己的分支合并到主干分支的请求,请求对方将你的代码 Merge 到他的主干分支。GitLab 中对应的是 merge_requests,都是当前贡献代码的主要手段。Github 中有关于 Pull Request 有一个详细的说明,刚兴趣的话可以仔细研读下:about-pull-requestsWIP WIP Work in progress, do not merge yet.
出现在 PR 的标题中,用于提示审核人,进行中暂时不要合并;Github 和 GitLab 均以对此缩略语提供了自动化支持,在标题中出现时,将禁用合并按钮。在开源项目中,如果计划贡献代码,请在开始时,就准备一个 PR,并贴上你的计划和目的描述,在标题开头标注 WIP: 以同步给与你有同样想法的人,避免重复的工作。LGTM/SGTM LGTM Looks good to me.
SGTM Sounds Good To Me.
通常出现在 PR 的评论里,表示对提交者的赞许,鼓励他更多的参与贡献。正如语气 在我看来很好 所以大多是审核者或者项目所有者对贡献者的鼓励,请在评论别人的 PR 时斟酌一二。CC CC Carbon copy
CC 可能是来自邮件沟通中的缩略语,表示抄送的意思,希望某人也能收到,了解相关信息,通过 cc 后续的 @ At 出对应的成员,他可以再自己的通知中收到相关信息,并知晓有消息抄送给他。实例: cc @dingdayu 这里的消息看一下其他缩略语下面所列也是常见缩略语,但受于篇幅和时间,将不对其做更多的着墨,相信大家根据注释都能有所体会,有兴趣的话,可以在社区多多尝试一下。TL;DR Too Long; Didn't Read. // 太长懒得看。也有很多文档在做简略描述之前会写这么一句
PTAL Please take a look. // 帮我看下,一般都是请别人 review 自己的 PR
DNM Do not merge. //不要合并
CL Changelist. // 修改的文件
CS Changeset. // 和CL 类似
ACK acknowledgement. // 我确认了或者我接受了,我承认了
RFC request for comments. // 我觉得这个想法很好, 我们来一起讨论下
IIRC if I recall correctly. // 如果我没记错
NACK/NAK negative acknowledgement. // 我不同意
TBR To Be Reviewed. // 提示维护者进行 review
TBD To Be Done(or Defined/Discussed/Decided/Determined). // 根据语境不同意义有所区别,但一般都是还没搞定的意思
IMO In My Opinion. //在我看来、依我看、依我所见
IMHO In My Humble Opinion IMO. //谦虚的说法,以我的拙见(多用于邮件和网络)
AFAIK/AFAICT As Far As I Know / Can Tell. //据我所知
FYI For your information. //供你参考
AFK Away From the Keyboard. //稍后回来
IANAL I am not a lawyer, but I smell licensing issues. // 我不是律师,但是我闻到了许可问题不推荐的用法这里的不推荐只是作者本人认为有更好的方式表达,且操作存在相关争议,建议大家不要这样使用,并不代表官方说法,请仅供参考。 LGT1 Looks Good To 1. //如果有一个回复 LGTM 则可以添加为 LGT1,1 代表目前有 1 个赞
LGT2 Looks Good To 2. //如果有两个回复 LGTM 则可以添加为 LGT2,2 代表目前有 2 个赞
建议使用 GitLab 和 Github 中提供的 enjoy 表情的功能,表达你的观点。其中 Github 上在评论(issues,PR均可)的右上角提供一个 表情图案(Pick your reaction),提供了几个预选表情,你可以选择你的观点,也可以再评论的下方,别人的观点中进行+1等操作。GitLab 则在响应的位置提供了 ?/? 或添加新的观点的功能。
docker部署Discuz论坛
环境准备:ip服务192.168.2.10(server1)docker、k8s192.168.2.20(server2)docker、k8s192.168.2.30(server3)docker、k8sk8s集群如何搭建如果是刚开机的k8s集群的主机开机后启动服务(集群还是ready)代码语言:javascript复制[root@server1 ~]# systemctl enable kubelet.service systemctl start kubelet.service
[root@server1 ~]# systemctl stop firewalld systemctl start docker.service开始我把防火墙都关了不然端口太多代码语言:javascript复制systemctl stop firewalldserver1:pull所需要的mysql镜像代码语言:javascript复制[root@server1 ~]# docker pull mysql:5.7
5.7: Pulling from library/mysql
8559a31e96f4: Pull complete
d51ce1c2e575: Pull complete
c2344adc4858: Pull complete
fcf3ceff18fc: Pull complete
16da0c38dc5b: Pull complete
b905d1797e97: Pull complete
4b50d1c6b05c: Pull complete
d85174a87144: Pull complete
a4ad33703fa8: Pull complete
f7a5433ce20d: Pull complete
3dcd2a278b4a: Pull complete
Digest: sha256:32f9d9a069f7a735e28fd44ea944d53c61f990ba71460c5c183e610854ca4854
Status: Downloaded newer image for mysql:5.7
docker.io/library/mysql:5.7server1:pull所需要的nginx和php的整合镜像代码语言:javascript复制[root@server1 ~]# docker pull richarvey/nginx-php-fpm
Using default tag: latest
latest: Pulling from richarvey/nginx-php-fpm
aad63a933944: Pulling fs layer
b61c449d5d91: Pulling fs layer
3fde16e1397a: Pulling fs layer
b1096698ab2a: Pulling fs layer
96de990b7ad3: Pulling fs layer
c280bfe25221: Pulling fs layer
02be9679a029: Pulling fs layer
01973f657634: Pulling fs layer
75924d0578e0: Pulling fs layer
7545938f30ed: Pull complete
267be130ac8a: Pull complete
5b9ce6473ee0: Pull complete
0cb267b5005b: Pull complete
0bbcede612f0: Pull complete
6f23dfb3d18c: Pull complete
363732275cc7: Pull complete
679aa7f9f360: Pull complete
d47507c4f094: Pull complete
17ba4fac2074: Pull complete
b16f52630a15: Pull complete
e8c7df728273: Pull complete
3b3bc6c69299: Pull complete
d0f1d1b1ad30: Pull complete
b8af2e53bd85: Pull complete
7e439df1bb98: Pull complete
f28361c951da: Pull complete
126a49c3e514: Pull complete
39838375a23b: Pull complete
1ca506cbf594: Pull complete
Digest: sha256:8b7c47b940fd79b5764ec12fdfbc7a1a198889316347963c9e9bd1aa78eec098
Status: Downloaded newer image for richarvey/nginx-php-fpm:latest
docker.io/richarvey/nginx-php-fpm:latestNFSserver2下载nfs代码语言:javascript复制[root@server1 ~]# yum -y install nfs-utils
[root@server2 ~]# mkdir -p /data/k8s/{web,db}
[root@server2 ~]# vim /etc/exports
[root@server2 ~]# cat /etc/exports
/data/k8s 192.168.2.0/24(rw,sync,no_root_squash)
[root@server2 ~]# exportfs -rv
exporting 192.168.2.0/24:/data/k8s
[root@server2 ~]# systemctl start nfs
[root@server2 ~]# systemctl enable nfs
Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.server1:代码语言:javascript复制[root@server1 ~]# mkdir -p /home/k8s/lnmp/mysql
[root@server1 ~]# cd /home/k8s/lnmp/mysql
[root@server1 mysql]# kubectl create secret generic mysql-pass --from-literal=password=123.com
secret/mysql-pass created
[root@server1 mysql]# vim mysql-pv.yml
#内容:
apiVersion: v1
kind: PersistentVolume
metadata:
name: mysql-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
nfs:
path: /data/k8s/db
server: 192.168.2.20
[root@server1 mysql]# kubectl apply -f mysql-pv.yml
persistentvolume/mysql-pv created
[root@server1 mysql]# vim mysql-pvc.yml
#内容:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: mysql-claim
labels:
app: discuz
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
[root@server1 mysql]# kubectl apply -f mysql-pvc.yml
persistentvolumeclaim/mysql-claim created
[root@server1 mysql]# vim mysql-dp.yml
#内容:
apiVersion: apps/v1
kind: Deployment
metadata:
name: dz-mysql
labels:
app: discuz
spec:
selector:
matchLabels:
app: discuz
tier: mysql
strategy:
type: Recreate
template:
metadata:
labels:
app: discuz
tier: mysql
spec:
imagePullSecrets:
- name: my-secret
containers:
- image: mysql:5.7
name: mysql
env:
- name: MYSQL_ROOT_PASSWORD
valueFrom:
secretKeyRef:
name: mysql-pass
key: password
ports:
- containerPort: 3306
name: dz-mysql
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/lib/mysql
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: mysql-claim
[root@server1 mysql]# kubectl apply -f mysql-dp.yml
deployment.apps/dz-mysql created
[root@server1 mysql]# vim mysql-svc.yml
#内容:
apiVersion: v1
kind: Service
metadata:
name: dz-mysql
labels:
app: discuz
spec:
ports:
- port: 3306
selector:
app: discuz
tier: mysql
[root@server1 mysql]# kubectl apply -f mysql-svc.yml
service/dz-mysql created
[root@server1 mysql]# kubectl get pv,pvc
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/mysql-pv 10Gi RWX Retain Bound default/mysql-claim 17m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/mysql-claim Bound mysql-pv 10Gi RWX 8m6s
[root@server1 mysql]# vim web-pv.yml
#内容:
apiVersion: v1
kind: PersistentVolume
metadata:
name: web-pv
spec:
capacity:
storage: 10Gi
accessModes:
- ReadWriteMany
nfs:
path: /data/k8s/web
server: 192.168.2.20
[root@server1 mysql]# kubectl apply -f web-pv.yml
persistentvolume/web-pv created
[root@server1 mysql]# vim web-pvc.yml
#内容:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: web-claim
labels:
app: discuz
spec:
accessModes:
- ReadWriteMany
resources:
requests:
storage: 10Gi
[root@server1 mysql]# kubectl apply -f web-pvc.yml
persistentvolumeclaim/web-claim created
[root@server1 mysql]# vim web-dp.yml
#内容:
apiVersion: apps/v1
kind: Deployment
metadata:
name: dz-web
labels:
app: discuz
spec:
replicas: 1
selector:
matchLabels:
app: discuz
tier: nginx-php
template:
metadata:
labels:
app: discuz
tier: nginx-php
spec:
imagePullSecrets:
- name: my-secret
containers:
- image: richarvey/nginx-php-fpm
name: dz-web
ports:
- containerPort: 9000
- containerPort: 80
name: dz-web
volumeMounts:
- name: mysql-persistent-storage
mountPath: /var/www/html
volumes:
- name: mysql-persistent-storage
persistentVolumeClaim:
claimName: web-claim
[root@server1 mysql]# kubectl apply -f web-dp.yml
deployment.apps/dz-web created
[root@server1 mysql]# vim web-svc.yml
#内容:
apiVersion: v1
kind: Service
metadata:
name: dz-web
labels:
app: discuz
spec:
type: NodePort
ports:
- port: 80
nodePort: 30001
selector:
app: discuz
tier: nginx-php
[root@server1 mysql]# kubectl apply -f web-svc.yml
service/dz-web created
#如果下一步操作显示0/1别着急先往下做(等3-5分钟即可)
[root@server1 mysql]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
dz-mysql-5dcd86b5c8-qgqbm 1/1 Running 0 22m 10.244.1.24 server2 <none> <none>
dz-web-68959dc478-879qr 1/1 Running 0 6m43s 10.244.2.28 server3 <none> <none>
[root@server1 mysql]# kubectl get pv,pvc
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/mysql-pv 10Gi RWX Retain Bound default/mysql-claim 33m
persistentvolume/web-pv 10Gi RWX Retain Bound default/web-claim 11m
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/mysql-claim Bound mysql-pv 10Gi RWX 23m
persistentvolumeclaim/web-claim Bound web-pv 10Gi RWX 5m22sserver2:代码语言:javascript复制[root@server2 data]# git clone https://gitee.com/ComsenzDiscuz/DiscuzX.git
[root@server2 data]# mv DiscuzX/upload/* k8s/web/
[root@server2 data]# ls
DiscuzX k8s
[root@server2 data]# cd k8s/web
[root@server2 web]# ls
admin.php data m source
api favicon.ico member.php static
api.php forum.php misc.php template
archiver group.php plugin.php uc_client
config home.php portal.php uc_server
connect.php index.php robots.txt
crossdomain.xml install search.php
[root@server2 web]# chmod -R 777 /data/k8s/web/server1:代码语言:javascript复制[root@server1 mysql]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
dz-mysql-5dcd86b5c8-qgqbm 1/1 Running 0 40m 10.244.1.24 server2 <none> <none>
dz-web-68959dc478-879qr 1/1 Running 0 24m 10.244.2.28 server3 <none> <none>
[root@server1 mysql]# kubectl exec -it dz-mysql-5dcd86b5c8-qgqbm -- mysql -uroot -p123.com
mysql> create database hy;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on hy.* to 'hy'@'%' identified by '123.com';
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> exit
Bye验证:IP:30001
下面的步骤跟着走就行了!
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/101953.html原文链接:https://javaforall.cn
怎样增强 CLike 游戏的社交功能,促进玩家之间的互动和交流?
要增强CLike游戏的社交功能,以促进玩家之间的互动和交流,可以考虑以下几个方面: 添加聊天功能:在游戏中加入实时聊天功能,让玩家可以在游戏内互相交流。可以通过文本聊天或者语音聊天来实现。
社交平台集成:将CLike游戏与流行的社交媒体平台(如Facebook、Twitter等)进行集成,让玩家可以方便地与自己的朋友分享游戏进展、成就和战绩。
建立玩家社区:为CLike游戏创建一个在线玩家社区,让玩家可以在社区中创建个人资料、加入兴趣小组、发布帖子等,从而与其他玩家建立联系,并与他们交流和分享游戏经验。
多人合作和竞争模式:设计多人合作或竞争模式,让玩家可以与其他玩家共同完成任务或对抗。这样可以促进玩家之间的互动和合作,增加游戏的社交性。
社交活动和比赛:定期举办社交活动和比赛,例如公开赛、擂台赛等。这样可以吸引更多玩家参与,并通过竞争和合作来增强社交互动。
增加奖励系统:为玩家的社交互动和交流行为设计奖励机制,例如通过赠送虚拟货币、特殊道具或提供特殊权益等形式,鼓励玩家积极参与社交活动。
提供论坛和帮助中心:为CLike游戏建立一个官方论坛和帮助中心,让玩家可以在这里提问、回答问题、分享经验和交流。有专门的工作人员维护和回复社区的问题,以增加玩家之间的互动和帮助。
通过以上措施,可以增强CLike游戏的社交功能,促进玩家之间的互动和交流,提高游戏的社交性和玩家的参与度。
Redis实现社交粉丝功能
好友相关的功能至少包含关注 / 取关我(他)的关注我(他)的粉丝共同关注我关注的人也关注他这样的功能如果采用数据库,只是单纯得到用户的一些粉丝或者关注列表,也很简单、易实现,但若我想查出两个甚至多个用户共同关注人或想查询两个或者多个用户的共同粉丝,就会很麻烦,效率也不会很高。但如果用 redis 去做的话就会相当的简单且高效。因为 redis 自己本身带有专门针对于这种集合的交集、并集、差集的一些操作。
总体思路我们采用 MySQL + Redis 的方式结合完成。MySQL 保存落地数据Redis 的 Sets 进行集合操作数据表设计代码语言:javascript复制CREATE TABLE `t_follow` (
`id` int(11) NOT NULL AUTO_INCREMENT ,
`diner_id` int(11) NULL DEFAULT NULL COMMENT '用户外键' ,
`follow_diner_id` int(11) NULL DEFAULT NULL COMMENT '用户食客外键' ,
`is_valid` tinyint(1) NULL DEFAULT NULL ,
`create_date` datetime NULL DEFAULT NULL ,
`update_date` datetime NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=6
ROW_FORMAT=COMPACT;创建代码模块 ms-follow代码语言:javascript复制<dependencies>
<dependency>
<groupId>org.springframework.cloudgroupId>
<artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-data-redisartifactId>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
dependency>
<dependency>
<groupId>com.battcngroupId>
<artifactId>swagger-spring-boot-starterartifactId>
dependency>
dependencies>配置文件代码语言:javascript复制server:
port: 8084 # 端口
spring:
application:
name: ms-follow # 应用名
# 数据库
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: 123456
url: jdbc:mysql://127.0.0.1:3306/db_redis?serverTimezone=Asia/ShanghaicharacterEncoding=utf8useUnicode=trueuseSSL=false
# Redis
redis:
port: 6379
host: 192.168.10.101
timeout: 3000
password: 123456
database: 2
# Swagger
swagger:
base-package: com.javaedge.follow
title: 慕课美食社交食客API接口文档
# 配置 Eureka Server 注册中心
eureka:
instance:
prefer-ip-address: true
instance-id: ${spring.cloud.client.ip-address}:${server.port}
client:
service-url:
defaultZone: http://localhost:8080/eureka/
service:
name:
ms-oauth-server: http://ms-oauth2-server/
ms-diners-server: http://ms-diners/
mybatis:
configuration:
map-underscore-to-camel-case: true # 开启驼峰映射
logging:
pattern:
console: '%d{HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n'实体类代码语言:javascript复制@ApiModel(description = "食客关注实体类")
@Getter
@Setter
public class Follow extends BaseModel {
@ApiModelProperty("用户ID")
private int dinerId;
@ApiModelProperty("关注用户ID")
private Integer followDinerId;
}业务流程共同关注Sets 拥有去重 (我们不能多次关注同一用户) 功能 。一个用户我们存贮两个集合:一个是保存用户关注的人 另一个是保存关注用户的人。RedisKeyConstantfollowing(“following:”, “关注集合Key”),
followers(“followers:”, “粉丝集合Key”),
用JAVA的DEA算法衡量社交媒体页面的流行度
Measuring the Social Media Popularity of Pages with DEA in JAVA原文作者:Vasilis Vryniotis原文地址:http://blog.datumbox.com/measuring-the-social-media-popularity-of-pages-with-dea-in-java/译者微博:@从流域到海域译者博客:blog.csdn.net/solo95用JAVA的DEA算法衡量社交媒体页面的流行度在前面的文章中,我们讨论了数据包络分析(Data Envelopment Analysis)技术,我们已经看到它如何被用作一个有效的非参数排序算法。在这篇博文中,我们将开发出一个JAVA数据包络分析的实例,我们将用它来评估网络上的网页和文章的社交媒体流行度。该代码是开源的(在GPL v3 license下),您可以从Github免费下载。更新:Datumbox机器学习框架现在是开源的,可以免费下载。查看包com.datumbox.framework.algorithms.dea以查看Java中Data Envelopment Analysis的实现。数据包络分析在JAVA中的实现代码是用JAVA编写的,可以直接从Github下载。它是根据GPLv3许可的,所以可以随意使用它,修改它,或者再分发。该代码实现了数据包络分析(Data Envelopment Analysis)算法,使用lp_solve库来解决线性规划问题,并使用Web搜索引擎优化分析(Web SEO Analytics )索引提取的数据,以构建基于Facebook,Google Plus和推特上分享的一个混合的社交媒体页面流行度矩阵。在前面的文章中介绍了算法的所有理论部分,在源代码中可以找到关于其实现的详细的javadoc注释。(原博文之后数据包络分析(Data Envelopment Analysis)算法及其实现全部简称了DEA,请读者注意,译者注。)下面我们提供一个关于其架构实现的高级别描述:1. lp_solve 5.5 library为了解决各种线性规划问题,我们使用一个名为lp\_solve的开源库。某些特定的lib是用ANSI C编写的,并使用JAVA包装来调用库方法。因此,在运行代码之前,您必须在您的系统上安装lp_solve。该库的二进制文件在[Linux和Windows都可以使用,您可以在lp_solve文档中阅读更多有关安装的信息。在尝试运行JAVA代码之前,请确保您的系统上安装了(相关的)特定库。有关安装和配置库的任何问题,请参阅lp_solve文档。2.DataEnvelopmentAnalysis Class这是DEA算法的主要实现类。它实现了一个名为estimateEfficiency()的公共方法,它获取记录的Map并返回它们的DEA得分。3. DeaRecord ObjectDeaRecord是一个特殊的对象,用于存储我们记录的数据。由于DEA需要分离输入和输出,因此DeaRecord对象将以DEA可以处理的方式分别存储我们的数据。4. SocialMediaPopularity ClassSocialMediaPopularity是一个应用程序,它使用DEA来评估社交媒体网络上Facebook的like,Google的 +1和twitter的Tweets的网页流行度。它实现了两个受保护的方法:calculatePopularity()和estimatePercentiles()以及两个公共方法loadFile()和getPopularity()。calculatePopularity()使用DEA实现根据社交媒体计数来估计页面的得分数。estimatedPercentiles()方法获取DEA分数并将其转换为百分位数。总的来说,百分比比DEA分数更容易解释; 因此当我们说一个网页的流行分数是70%时,这意味着该网页比70%的其他网页更受欢迎。为了能够估计一个特定页面的流行度,我们必须有一个包含其他页面的社交媒体数据的数据集。这是有原因的,因为需要预测哪个网页是受欢迎的,哪些不是,您必须能够将其与网络上的其他页面进行比较。为此,我们使用来自以txt格式提供的Web SEO分析索引的小型的匿名样本。您可以通过从网页上的更多页面提取社交媒体计数来构建自己的数据库。(社交媒体计数,比如点赞数、转发数、评论数)loadFile()方法用于加载DEA的上述统计信息,getPopularity()方法是一种易于使用的方法,可以获取Facebook的like,Google的+1和一个页面的Tweets数量,并以此评估其在社交媒体上的流行度。如何使用数据包络分析的JAVA实现在DataEnvelopmentAnalysisExample类中,我提供了2个不同的关于如何使用代码的例子。第一个例子直接使用DEA方法来根据它们的输出(ISSUES,RECEIPTS,REQS)和输入(STOCK,WAGES)来评估组织单位的效率。这个例子来自DEAzone.com的一篇文章。代码语言:txt复制Map<String, DeaRecord> records = new LinkedHashMap<>();
records.put("Depot1", new DeaRecord(new double[]{40.0,55.0,30.0}, new double[]{3.0,5.0}));
//...adding more records here...
DataEnvelopmentAnalysis dea = new DataEnvelopmentAnalysis();
Map<String, Double> results = dea.estimateEfficiency(records);
System.out.println((new TreeMap<>(results)).toString());第二个示例使用我们的社交媒体流行度应用程序,通过使用来自社交媒体的数据来评估页面的流行度,例如Facebook的like,Google的+1和Tweets。所有的社交媒体计数都被标记为输出,我们传递给DEA一个空的输入向量。代码语言:txt复制SocialMediaPopularity rank = new SocialMediaPopularity();
rank.loadFile(DataEnvelopmentAnalysisExample.class.getResource("/datasets/socialcounts.txt"));
Double popularity = rank.getPopularity(135, 337, 9079); //Facebook likes, Google +1s, Tweets
System.out.println("Page Social Media Popularity: "+popularity.toString());必要的扩展(上面)所提供的代码只是DEA如何被用作排名算法的一个例子。为了改进其实现,需要进行下面的扩展:1.加速(算法的)实现特定的DEA算法实现会评估数据库中所有记录的DEA得分。由于我们需要解决如同数据库中记录数量那样多的线性规划问题,这使得实现变得缓慢。如果我们不需要计算所有记录的分数,那么我们可以显著地加快执行速度。因此,该算法的小扩展可以使我们更好地控制哪些记录应该被解决掉,哪些只能被用作约束。2.扩大社交媒体统计数据库(这篇文章所)提供的社交媒体统计数据库由来自Web SEO Analytics索引的1111个样本组成。为了能够估计更准确的流行(度)分数,需要更大的样本。您可以通过统计来自网络上更多页面的社交媒体计数来创建自己的数据库。3.添加更多的社交媒体网络该实现使用Facebook的喜欢,Google的+1和推文的数量来评估文章的受欢迎程度。不过,来自其他社交媒体网络的指标可以很容易地被考虑在内。您只需要从您感兴趣的网络中构建一个社交媒体数据库,然后扩展SocialMediaPopularity类来处理它们。关于实施的最终意见为了能够扩展(算法的)实现,您必须对Data Envelopment Analysis的工作原理有一个很好的理解。这在前面的文章中已经介绍过了,所以在继续进行任何更改之前,请确保您阅读了之前的教程。此外,为了使用JAVA代码,您必须在您的系统中安装lp\_solve库(参见上文)。如果你在一个有趣的项目中使用这个实现,那么就给我们一条线索,我们将在我们的博客上展示你的项目。另外,如果你喜欢这篇文章,请花点时间在Twitter或Facebook分享。
社交网络邮箱分析
作者:Multiangle
链接:https://www.zhihu.com/question/41676600/answer/113216461
来源:知乎
著作权归作者所有,转载请联系作者获得授权。
分析了6000封左右邮件,对收件人之间的关系进行了简单的分析,也没什么严密的分析计划,分析到哪就写到哪吧
------------------------------------- update 7.27 ------------↓↓↓↓--------------------------------------------------------
1.首先来看收发邮件数
在6000封邮件中,涉及了600个左右的邮箱
单看发送邮件的数目,前五强邮箱分别是
[email protected] 645封 [email protected] 645封 [email protected] 200封 [email protected] 149封 [email protected] 147封
单看接收和抄送的数目,则前五强分别是
[email protected] 2224封 [email protected] 1030封 [email protected] 656封 [email protected] 649封 [email protected] 540封
具体的一些信息如下图所示(按照发送邮件数目排序)
如果按照发件数或者收件数对各邮箱进行排序,都可以看到社交分析中常见的指数曲线
令我比较惊讶的是,在对发送邮件数取对数以后,所得到的结果仍旧是一条指数曲线。如下图所示。
这表明,这个竞选团队中极少数人有着极大的话语权。毕竟在求对数以后一般是得到一条直线的,例如微博中排名前几千的大V的粉丝数分布,就像下面这个图(原谅我的灵魂画技)
纵轴在接近0的地方会迅速向0靠近,这是由于对数函数本身的性质导致的。
2. 邮箱之间的社交分析(SNA)
这一部分的分析就比较好玩了,首先使用PageRank算法来计算各个邮箱的重要性。
结果发现收发最频繁的两个邮箱重要性反而不怎么高
可以看到PageRank值最高的邮箱是[email protected], 达到了0.07, 看名字似乎是负责对外推送消息的。排第二的是[email protected], 似乎与民主党的经济事务有关。
对上述社交网络进行可视化表示,在使用ForceAtlas2展开以后,得到如下图所示
其中节点表示邮箱,边代表邮箱间发送的邮件。点的颜色深度与收发邮件的数目有关,而点的大小则与PageRank值有关。可以看到上面有两个非常深的节点,分别是[email protected](左上)和[email protected](右下)。而最大的节点即[email protected] . 所以说啊,邮件往来频繁的也不见得重要性就高,真正重要的人都躲在后面闷声发大财。
从上面还可以看到竞选团队很明显的分成左上和右下两个部分,这个后面会讲
还有一点,上面的图有很多排成很密集的小白点, 比如说红线框起来的部分
这些有很多是外部邮箱,而且往往排在一起的那些邮箱都只与一个邮箱进行单线联系。虽然大部分只是进行了一次通信,不过也可以借此看出每个人负责哪一部分工作。下方红线部分的邮箱大部分是媒体,包括网络媒体和传统媒体,以及一些LGBT网站,教师工会等等,主要由MirandaL联系。而左上部分的邮箱比较杂,包括一些服务软件公司,策略咨询公司,金融服务公司,服装公司等。总的来讲是维持竞选团队正常运行的,主要由KaplanJ联系。
由MirandaL负责联系的有(主要看靠下红框,我随机抽了一些,一个个在Google上查后缀,这一部分是最累的)
由Kaplan J 负责联系的有
3. 社区发现
如果在第二步的基础上使用社区发现算法,就能够将整个竞选团队分成若干个子社区,如下图所示
一种颜色即代表了一个子社区。通过这个可以看到,算法显然比肉眼要更加精确,除了区分出绿色的子社区以外,还将右下角的大块分成了蓝色,紫色和橙色三个子社区。
绿色部分的大人物有
[email protected],
[email protected] 等。
紫色部分不用说了,最明显的DNCPress@ http://dnc.org
橙色部分不知道干嘛的,比较有分量的是[email protected]
蓝色部分我也不知道是干嘛的,没有特别显眼的人物。但是从位置上来看,估计是竞选团队中的普通人员,负责日常事务和分析。
------------------------------------- update 7.28 ----------↓↓↓↓----------------------------------------------------------
4.邮件数目与日期的关系
邮件大部分是从今年4月20号以后开始的。首先绘制每天的邮件数目变化
可以看到在从4月20日到5月25日的一个月时间里,邮件数呈现明显的周期变化。细心的人应该已经猜到了,这是由于周末的缘故。几乎所有的低谷都发生在周六和周末。看来他们的双休制度执行的不错,加班情况不明显。
看完了低谷,再来看几个几个邮件数目比较高的日期: 5/4, 5/10, 5/17. 显然,这几天肯定有大事情发生。我跑去GoogleTrend 搜了下democratic party的搜索指数,结果发现跟邮件数是高度吻合的
其中橙色代表邮件数目,蓝色代表搜索指数。为了将两组数据放在一张图里,我对邮件数进行了等比例缩减。
跑去Democracy Now! 翻了翻之前的新闻,在忽略掉大量Trump的八卦以后,找到了那几天的大新闻
5/4 Ted Cruz 退选
5/10 Sanders 拿下了 West Virginia Primary (我之前不太关注这些,不知道这个该怎么翻)
5/17 Sanders 拿下了 Oregon Primary, 而Hillary 拿下了Kentucky
5.神秘的小团体
在之前的关系图中,还有一个点没讲,就是左上角的那一坨黑点
可以看出来这坨黑点内部交流十分紧密,而与外界联系十分的少,只通过少数人与Kaplan J 联系。非常神秘的样子。那么这个小团体里究竟是哪些人呢?首先要列出这些人的邮箱。这些人中任何一人都与名单中其他所有人有过联系
代码语言:javascript复制[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
我查了一些人的资料,因为我对它们也不熟,所以只列个大概资料。
代码语言:javascript复制邮箱 [email protected]
姓名 Jackson Dunn
简介:Jackson Dunn is a Senior Managing Director in the Strategic Communications segment at FTI Consulting, and is based in Washington, D.C. He also serves as head of the segment’s Public Affairs practice in the Americas. 大意是做咨询工作代码语言:javascript复制邮箱 [email protected]
姓名 Brian Zuzenak
职务 Political Director at Gov. Terry McAuliffe
根据LinkedIn上的资料,此人目前就职于Common Good VA
曾经就职于Democratic Congressional Campaign Committee, Kate Marshall for Congress,
Missouri Democratic Party代码语言:javascript复制邮箱 [email protected]
姓名 Jonathan Mantz
目前就职 BGR Group
曾经就职 Barbour Griffith Rogers, Hillary Clinton for President, DSCC代码语言:javascript复制邮箱 [email protected]
姓名 Michael Halle
Director, Battleground Analytics and Strategy at Hillary for America
暂时就只搜4位,其他各位感兴趣的可以去Google搜,还是挺好搜的
可以看出来,这些人大部分是属于咨询机构,看起来是专门进行出谋划策的=。=
------------------------------------- update 7.26 ----------↓↓↓↓----------------------------------------------------------
写个比较无关的,看到很多人对 @XY Lee 写的感兴趣,花了一个晚上+上午写了个分析邮件往来关系的单线程小爬虫来玩玩,很简陋而且代码也比较乱,实现的功能也比大神差远了,不过能生成基本的社交关系数据。至于分析嘛,是用gephi来完成的,很好玩的一个软件,号称SNA的matlab,可以做pagerank,社区发现等一些算法。代码放在GitHub - multiangle/HillaryEmailAnalysis ,注意要用到networkx库。
所有分析用到的工具:
python3.4 + networkx 库
gephi
excel
当然,如果不想用爬虫下邮件,我这有下了一晚上的成果,大概6k封的社交关系数据,还有已经生成的供gephi使用的gexf格式文件链接: http://pan.baidu.com/s/1qYpdVB2 密码: 9fax
DZ论坛性能优化
DZ论坛是一款功能十分强大的bbs系统。但是由于功能的强大也使其变得很臃肿。当服务器性能一般的情况下,打开dz的速度也就很一般了。本文将通过自己的实践来告诉大家如何来提高论坛的加载速度。论坛页面缓存优化全局--性能与优化缓存论坛首页有效期:设置论坛首页缓存更新的时间,单位为秒,0 为关闭(关闭以后,缓存系数将不再起作用),建议设置为 900。此功能只针对游客缓存帖子有效期:设置帖子页面缓存更新的时间,单位为秒,0 为关闭。请根据实际情况进行调整,建议设置为 900。缓存目录:默认为 data/threadcache 目录,如果您需要将其指定为其他目录,请确定您指定的目录有可写权限缓存系数:页面缓存功能可以将会员经常访问的主题临时缓存起来,缓解大型论坛服务器压力。缓存阀值范围 0 - 100,建议设置为 40 ,0 为关闭。在磁盘空间允许的情况下,适当调高缓存系数,可以提高缓存效果。服务器优化是否优化更新主题浏览量>>是查看数开启防刷新:>>是附件下载量延迟更新:>>是禁止浏览器缓冲:>>否最大在线人数:>>根据自己的实际情况而定关闭session机制:>>是内存优化(重要)内存的快慢直接影响的程序的加载程度。在这里我们利用redis来优化我们的内存。首先,在宝塔面板中安装redis修改config/config_global.php文件内容如下代码语言:javascript复制$_config['memory']['prefix'] = '3DAD6r_';
$_config['memory']['redis']['server'] = '127.0.0.1';
$_config['memory']['redis']['port'] = 6379;
$_config['memory']['redis']['pconnect'] = 0;
$_config['memory']['redis']['timeout'] = '';
$_config['memory']['redis']['requirepass'] = '';
$_config['memory']['redis']['serializer'] = 1;保存完成后重启php和apacher这样便完成了redis的安装版权属于:逍遥子大表哥本文链接:https://cloud.tencent.com/developer/article/1921469按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。
社交关系+大数据=?
有个不太靠谱的命题:如何让赵本山和迈克尔乔丹搭上关系?其实很简单,通过分析两个人的社交圈子,兴趣爱好等,最终可以找出一条线路能让他们两个人认识,这就是隐藏其中的大数据魅力之一点点……随着互联网的冲击,UGC(用户产生内容)不断发展,社交网络已经不断普及并深入人心,用户可以随时随地在网络上分享内容,由此产生了海量的用户数据。这些数据并不是我们想象中的那样冷冰冰、枯燥的数据,而是更加活生生、有趣的数据;这些数据不同于以往单纯的数字,它们声色结合、图文并茂。比如,Facebook用户每天共享的东西超过40亿,Twitter每天处理的数据量超过3.4亿;而每分钟Tumblr博客作者会发布2.7万个新帖子,Instagram用户会共享3600张新照片……随着Facebook、Twitter、LinkedIn、微信等社交媒体的流行,对社交关系的数据挖掘成为近几年的一个技术热点。玩的核心是消费者洞察在一般商业前提下,社交大数据挖掘的目的,是投其消费者所好。
不可否认,一个正在改变我们的生活、工作和思维方式的新浪潮正悄悄来到我们身边,这或许就是大数据(Big Data)导致的一个还不可名状的时代。当下,社交大数据正在对企业,甚至于一些行业带来深刻的变革。下面,让我们来细数一下吧!首先,与传统的营销方式相比,利用大数据营销,从前期的曝光,中期的转化,到后期的购买行为都是可监测的。效果可评估是大数据带来的最实质性影响。其次,在社交环节,越来越多消费者通过社交媒体反馈自己对企业产品、品牌形象的看法,这个过程会产生许多有价值信息,甚至包括一些潜在的市场需求。对一个企业来说,这些信息不仅可能使他们调整原有产品,甚至催生新的商业模式。消费者洞察,是大数据的核心价值。第三,大数据对某些行业来讲,意义更加不同。比如电影行业,金融行业,大数据能够起到预估性、前瞻性作用,企业可以据此建立一些模型对消费者行为进行分析。同时,这又是一个移动盛行的时代,与传统互联网相比,移动互联网时代更加强调“社交”和“互动”。人们随时随地可以和朋友问候交流、分享资讯,只要带上手机,整个社交圈也就装在口袋里。交互性增强带来的效果是,不但产品可以为用户带来效用,用户反过来也能为产品导入流量。一个网友如果在微博上发文夸赞一家餐厅,经由他的社交圈的转发和扩散,就将为这家餐厅带来更多的访客。这个特征,也为移动互联网时代的商业创新指出了一个方向,那就是基于用户身份的信息交互和社交应用。当下,所有行业都在积极拥抱移动互联浪潮,当然金融业也无法作壁上观。唯有移动起来的金融,才具备在下一个周期继续参与竞争的生命力。这其中,应用社交化的趋势和大数据,将对金融行业带来更多新的机遇,并将使金融行业逐步移动化、社交化,产生新的具有移动互联网特点的金融模式。这种金融模式将具有成本低廉、便捷的特点,能够使人们不受时间和地点的限制享受金融服务。总之,进入大数据时代,金融行业的客户信息、交易信息、资产信息、信用信息等数据经过有效采集和整理分析,将会成为具有价值的数据信息。内部数据结合外部数据将形成具有重要价值的数据资产,可以有效帮助金融企业进行精准营销,降低运营费用,提高欺诈管理水平,提高信用风险管理水评,为决策提供有效支持,同时帮助金融企业了解客户需求,开发出符合客户需要,具有创新精神的新产品。未来社交关系与大数据还将在互联网贷款、购买保险、证券投资等发挥极大作用。金融和数据拥有天然的数据化基因,因为金融本身就是信息和数据,做金融的本质就是做信用。大数据技术提供的有据可查的信用数据,为构建互联网金融信用体系提供了保障。什么时候隐私可以成为伪命题?社交大数据掘金路上,隐私问题忡忡。当然,深度的社交大数据挖掘中最敏感的问题仍然是用户隐私的问题。社交网站从一诞生起就与这个问题相伴相生,随着大数据时代的到来,隐私问题显得越发重要。在未来掘金社交数据的道路上,一方面要为用户提供更加精准便捷的良好服务,另一方面也要注重对用户隐私的保护。只有符合用户需求和用户安全的商业利益,才能成为可持续的商业利益。
可见,移动互联网、社交网络、云计算、大数据等新技术的不断涌现,加剧了互联网与金融业在客户管理、风险控制、渠道建设、商业模式、战略等层面广泛的融合和创新,不难想象,在不久的将来,真正能带来改变的互联网金融一定是由深谙互联网思维,立足小额信用贷款服务,涉及海量用户,注重数据资产,耐心长远的公司所推动的。只有这样,才是符合大数据的趋势,才能拥有长期的核心竞争力。但不可否认,无论选择与社交网络进行品牌联合,还是借助丰富而强大的数据系统实现精准定向,亦或求同存异定制产品打通,社交关系与大数据的结合,不仅搅动了金融业,而且演变为整个商业社会乃至人情社会的制高点工具问题,即将催生真正的互联网与金融领导者。版权声明:转载文章均来自公开网络,仅供学习使用,不会用于任何商业用途,如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜,联系邮箱:[email protected]。转载大数据公众号文章请注明原文链接和作者,否则产生的任何版权纠纷与大数据无关。
社交的基本逻辑
最近两个月学习了一门有关社交的课程,回想起自己这些年在社交上成功的案例、吃过的亏,印证了课程中的很多观点。所以写篇简单的文章,将课程中一些抽象的内容总结一下。学习社交的目的更好地进行社交,成为社交达人。提升自己的社交直觉、情商。快速建立对自己有价值的社交圈。从而对自己方方面面带来帮助。快速找到匹配自己、对自己有价值的合作伙伴。能更好地从全局来掌控社交及合作进程。哪些行为是合作社交,是为了寻求合作。合作的定义请问度娘。合作的形式,则非常广泛:一个简单的形式,例如一个普通职场员工的求职:做简历展示自己,与面试官的谈判,最终签署劳动合同,就职工作。这就算是一个建立合作的过程。又如:合伙创业、风险投融资、交友、共同做某件事(例如开发开源框架)……价值吸引原则这个社会,是一个合作、互利共生的社会。社会中任何形式的合作,必然是基于价值导向的。合作的前提,正是价值的吸引原则。你对对方所能带来的价值,包含多种多样,例如:生活价值、生存价值、事业价值、财富价值、心理价值、精神价值……而当你价值太低,或者价值过于单一时,很难找到人愿意与你合作。你会发现你连一个好的工作都找不到、没人愿意与你合伙创业、你的企业融不到资……所以一个个体(人、企业),一定要给社会提供多维度、立体的价值。而非单一价值。当你有价值时,自然会不断有合作者上门找你。另外,你寻求合作时,也应该寻求有价值的合作者。例如,寻求融资,不能只看对方给予的估值和现金。周末活动,也要参与对自己有价值的活动。人的精力、时间有限,不要去做一些无谓的社交,浪费自己的人生。(再次重申,这里的价值,不只是物质,还可以是精神)价值的体现酒好,还怕巷子深。在合作前、正常社交时,你本身的价值,需要以某种形式,以社群中体现出来。要体现哪些价值,应该针对你的目标合作方来决定。目的是要能吸引到你的目标合作方。价值的体现,需要注意适度。过度,则对方会认为你装逼;不够,则价值不够吸引对方。体现的形式,则需要找合适的、高效的媒介。常见的媒介有:聊天、照片、演讲、朋友、同事、互联网、移动互联网、朋友圈、头条、微博、公众号、其它自媒体等……。除了价值体现,还要注意对自身严重缺点的提升,以及包装。看到这,就能很好地理解,为什么很多商人欠了一屁股债,借钱也要继续开着豪车。^-^能量守恒合作,应该是平等的。不平等的合作,很难长久。要保持一个长期正常的合作关系,合作双方的能量需要尽量平等。能量,也叫合作的动能,可以理解为某一方要与对方进行合作的需求程度、渴望程度。合作过程中,某方的动能越大,该方的价值越低。越想得到,越得不到!所以,在合作时,特别在初期,要控制自己的动能、控制自己的需求感。最好的状态是我方能掌控合作双方的动能,进而能促成利于我方的合作。无欲而求,是合作的最高境界。这是反人性的!也是一种修炼!(你明明想得到,但是要控制自己达到一种不想得到的状态。)小技巧:关注对方的缺点,而不是优点,能帮助你降低你的动能。情商要做到能量守恒,掌控双方的动能,需要有很好的情商、社交直觉。我认为,情商 = 30% 自我情绪的掌控 + 70% 他人情绪及思维的掌控。所以,情商高的人,不但能控制好自我的情绪(动能),也要能很好的识别他人的情绪(动能),并使用沟通技巧来引导他人的情绪。要识别他人的情绪,需要有良好的社交直觉。而社交直觉需要依靠不断的实践,才能慢慢变强。没有实践的机会,也要创造机会,或者可以多看多听社交达人的实践,并总结经验。社交直觉必须提升上来,因为,你的合作方可能已经在此领域实战多年,对方的社交直觉可能远远高过你。而引导对方情绪,则是通过很多的沟通技巧来实现(语言、行为)。此为更高阶的能力,更是需要通过实战不断提升。合作的阶段吸引阶段
此阶段就是双方通过价值吸引原则,初步接触,一个不断的筛选与被筛选的过程。关系建立长期合作关系
长期合作关系的维护,是一门再次合作用于纪念的话其实,由于我的总结中省略了很多课程中关键的无法公开的内容,所以本文的内容其实比较抽象,没太多操作层面的干货。不过,此文更重要的意义在于纪念,以便于多年后的自我回顾。工作后的这些年,我深入研究的领域不多:2007年至今,主要研究领域是 IT;自我认为小有成就,个人发布数万行代码的开源框架、公司的技术一把手、薪水不低,也算是跻身行业头部。2013 年互联网金融暴发后,至今,我主要研究领域是理财投资;自我认为依然小有成就,理财投资能力~可能~已经进入行业头部,当然,还需要后续的确认和提升。而在 2018 年起,因为一些事,无意间接触并学习了这个神秘的课程,觉得自己突然间对很多事情有了新的认识。以至于,对自己的人生都有了新的规划。它将是我接下来会花很多时间来研究的、第三个非常重要的领域。以我目前的认知,我认为它将会对我的人生、我的事业、我的家庭,产生深远的影响!我很庆幸,能在关键的时刻遇到关键的老师!从小,不论是学习阶段,还是工作阶段,对于任何我想要做的事,都会很专注、努力。性格也很倔,对于我认定的事,失败只会让我更加努力。加上认为自己不笨,所以我自信,只要给予一定的时间,我做任何事都可以做得很好!所以我对自己在这个领域的成长,充满信心!时间,是最好的试金石,2018,遇见未知的自己,拭目以待……
VoC客户之声的价值与八爪鱼的实践
01. 什么是客户之声?客户之声(Voice of the Customer,简称VoC)是消费者对于品牌、产品、服务等内容的反馈。根据国际知名研究机构Forrester的定义:“公司通过VoC项目收集和分析客户反馈,找到客户体验提升方向,并追踪提升效果。为了应对运行VoC项目所面临的复杂挑战,客户体验专家可以寻求不同供应商的帮助完成VoC项目的部分或全部内容。VoC是指收集、分析客户反馈数据,挖掘数据价值并用于指导商业决策的一整套方案。”我们在很多时候都需要做 VoC ,例如做市场 、行业及产品调研时,在销售过程中,在售后服务过程中等等。VoC 已经成为企业非常重要的一种工具而得到广泛应用,同时, VoC 作为当下兴起的经济模式“客户体验管理(Customer Experience Management,,简称CEM)”中不可或缺的组成部分,也显得尤为重要。数字化转型的浪潮正影响着用户,让他们产生多渠道、多类型的反馈数据。要了解客户体验就需要将分散在不同渠道的反馈数据进行整合分析,透过数据理解客户的需求痛点。从收集来的反馈数据里倾听客户的声音,并将其转化为可执行的商业见解是VoC的核心目的。02. 客户之声的价值在哪里?首先我们需要明确一点:VoC洞察并非某个人、某个部门的事,而是整个公司各个部门共同的事,包括产品、品牌、服务、营销等。一套VoC解决方案的上线,需要公司从战略的角度给予支持,促进产品、品牌、服务、营销跨部门的流程优化,进而在各个环节洞察客户之声,为客户提供更好的体验。为什么VoC客户之声如此重要?因为VoC数据可以在以下多个方面帮助到企业增长:对于企业高层领导而言:可以了解当下市场情况及未来发展趋势;了解行业的发展现状及未来走向;为公司发展决策提供数据支持。对于产品部门而言:可以帮助企业优化产品,长期保持竞争力。调研并确定企业为客户提供什么样的产品和服务;帮助了解用户需求及痛点,从用户反馈中挖掘新的机会和增长点,为新产品的开发提供线索及指导策略。对于市场部门而言:可以帮助挖掘消费者情报和竞品情报。识别产品和服务的关键特性,分析产品市场宣传中的重点与用户关注点之间的差异;建立客户体验及满意度的基本测量指标,以此来测量改进成果,确定客户的使用体验及满意度的关键驱动因素;挖掘竞品情报,在产品的全生命周期,找到产品与竞品的差异点,确定企业和产品在哪些方面进行改进。在互联网高度发达时代,社交媒体或电商平台的一条负面评论,都可能劝退想要购买的新客户,对品牌口碑造成非常大的负面影响。我们必须以客户为中心,为客户提供良好的体验。Bain公司(全球领先的战略咨询公司)的研究发现,良好的客户体验可以创造出巨大的价值:擅长客户体验的公司的的收入比竞争对手高出4-8%卓越的体验可将客户生命周期价值提高6-14倍许多国外品牌都在上线VoC解决方案后证明:基于数据驱动的VoC解决方案可以有效地帮助品牌企业提高客户生命周期价值并降低客户流失率,从而实现业绩的持续增长。VoC的真正价值在于:使品牌整个组织架构都以客户为中心,帮助品牌更快地进行内部调整,并根据客户表达的意图和需求采取行动,在各个环节为客户提供最佳体验。在当今的大数据时代,掌握更多详尽且真实准确的客户之声数据,才更有机会赢得市场先机,拔得头筹。03. 常见的客户之声涵盖类型提起VoC客户之声,我们通常会想到反馈调研。我们平时在浏览官网或邮件的时候会经常收到过关于某一产品或服务的打分问卷(评分范围在1~5或1~10)。这些调研构成了大部分VoC项目的核心。反馈调研的目的有两个:一是评估客户体验水平;二是(对于更成熟的企业而言)采取措施进一步提升客户体验。常见的客户反馈调研类型包括客户满意度(CSAT)、客户费力度(CES)、和净推荐值(NPS)等。除了反馈调研之外,VoC客户之声通常还包括电商评论、新闻媒体及评论、社交媒体评论、垂直行业媒体及论坛、客服在线聊天、电话和工单等等。针对品牌舆情监控的问题,可以从各大新闻资讯网站和社交媒体平台上能获得很多有效的客户之声,包括客户对品牌推文的评论、客户对品牌营销种草活动的反应、关于品牌某事件的讨论从出现→发酵→达到峰值→降低→最终消失的动态走势监控。电商评论:近年来国内电商业务高速发展,几乎所有的品牌都建立了线上销售渠道,电商评论是十分重要的客户之声来源。品牌在多个平台售卖很多产品,一个产品动辄几十万上百万的评论,蕴藏着巨大价值。新闻媒体及评论:相对于个人用户而言,新闻媒体发布的消息能够在短时间内飞速传播,产生更深远的影响,用户也会在新闻下发布自己的想法,因此对于主流新闻媒体的新闻报道及评论监测也至关重要。社交媒体:国内的微信、微博、抖音等是非常重要的社交媒体平台,这些平台上每天有大量动态表达对品牌的看法。
垂直行业媒体及论坛:不同行业的用户有着各自的垂直论坛,如汽车用户的垂直论坛汽车之家、爱卡汽车、懂车帝;旅游类用户经常使用携程、去哪儿、马蜂窝;美妆护肤类用户则更偏好小红书和微博。汽车行业VoC采集示例客服在线聊天:每天可能有上万的客户通过各个平台的在线聊天与品牌的客服产生互动。包括品牌自己的客服系统、京东的叮咚、淘宝的旺旺等。VoC洞察是企业面向客户解决,进而提升客户体验,保持可持续性发展的有效方式。八爪鱼依托强大的采集能力基础,已经帮助过汽车、家电、3C、美妆等多个行业的客户收集VoC信息,助力企业增长,在VoC领域具有丰富的理论基础和实操经验。
如果您有客户之声相关的数据需求,可以扫描以下二维码咨询我们的顾问(或直接搜索微信号:BANXIANCEM),了解详细内容。
语音社交APP系统开发,提供纯粹的语音社交
我们不难发现,语音社交app的应用十分广泛,像音乐电台、游戏开黑、语音游戏等场景下都有它们的身影。语音聊天交友app需要为用户提供长时间、高频次语音连麦互动功能,在网络抖动时保证语音通话流畅、延迟小、卡顿低、音质好。经过几年的沉淀,语音直播系统源码打造得更加完善,如果说玩法是吸引用户的先锋兵,那么语音直播的声音魅力与实质内涵却是能否留存用户的关键。在社交交友方面,语音直播系统将建立多个版块,以拉近交友距离,为用户提供纯粹语音社交环境。和传统直播方式不同,语音直播app强调的是不看颜值,靠音值。定位于声音市场解锁新型的社交形式。从功能机制上来讲,一款语音社交App需要包含以下的功能:登录板块:支持手机验证码登陆,QQ、微信等三方登陆,已经写好接口首页板块:可查看关注的直播间,查看大厅房间列表,交友功能,搜索功能直播间板块:认证可以开房间,查看房间分类,进行房间的编辑管理,关注、私信、查看在线人数,查看排行榜,可以进行礼物的打赏,直播间小游戏的互动,可以进行麦位管理 ,分享直播间,充值。个人中心板块:基本信息的编辑修改(用户名,等级,性别,账号,头像),粉丝和关注点击查看,我的钱包钻石数量及充值,购买靓号,收益结算,余额兑换,等级勋章,好友邀请,账号与安全的设置,帮助与反馈等。搭建相关准备:1.服务器,是最基本的准备,前期4核8G5M带宽,就可以支持前期基本运营,后期可根据在线人数升级服务器。2.域名:域名一般建议使用运营者自己实名备案的,如果是购买的别人的,在运营中可能会掉,域名掉了,APP也就访问不了了。只有把域名解析到服务器上,网络才能找到你的。3.短信验证码和登陆方式登录验证。4.充值支付:最为常见的就是微信支付和支付宝支付。语音聊天app也是社交app中的一种,在这个浮躁看颜的现代社会,通过语音社交,有些不方便与身边人说,但又不吐不快的事,也不必压制于心,说给陌生人听听也是好的,且只出声,不露脸的交流方式也更令人觉得安全。文字比图像更能传递信息,语音比视频更有想象空间,有时候,没有图像带给人的刻板印象,只靠声音带来的虚幻想象会更令人着迷。
腾讯多媒体实验室亮相GBA-IAS 2019声学论坛,深度分享音频前沿技术
12月16日,由中国香港科技大学深圳研究院主办的GBA-IAS 2019声学论坛(GREATER BAY AREA -INTERNATIONAL ACOUSTICS SYMPOSIUM),在深圳正式召开。随着虚拟现实技术的发展,音视频行业对3D音频等技术的需求也更加强烈,本此论坛以“感知与声音”为主题,来自国内外众多知名大学、科研机构的多名心理学、声学、信号处理和计算机科学的专家出席,对各自团队的研究进展和新思路进行了分享与交流。在音视频领域积累多年的腾讯多媒体实验室团队受邀参会,腾讯多媒体实验室高级总监商世东、专家研究员肖玮、王燕南等就多媒体实验室的音频前沿算法及应用进行了分享。
(GBA-IAS 2019声学论坛,与会专家合影)
多媒体实验室成立于2016年,专注音视频通信技术的前瞻性研究,包括全球实时音视频网络优化、音视频处理、音视频标准、多媒体编解码前沿算法研究、计算机视觉图像处理、基于AI的音频语音增强、声音美化及音视频质量评测等,在实时音视频通信等技术领域积累了十余年的研究经验,一直保持业界的技术领先性。商世东详细介绍了多媒体实验室的音频技术全景图、音频端到端方案的技术框架以及5G时代下音频技术发展面临的挑战和机会。
“腾讯多媒体实验室,对于声学领域的技术发展和产业落地始终秉持着开放的态度,也希望能和行业的企业、高校等机构共同合作,一起推动声学领域技术的进步和落地应用。”商世东介绍道,随后,商世东主持了基于球面谐波技术和声音场景分类的空间声学研讨会,与来自澳大利亚国立大学的Thushara教授和华南理工大学的师生展开了热烈的讨论。
(腾讯多媒体实验室高级总监 商世东)
高效率音频超分算法的无限可能
腾讯多媒体实验室专家研究员肖玮,基于多媒体实验室在高效率音频超分领域的进展,同与会专家进行了深入的交流与探讨。作为腾讯天籁音频解决方案的重要支撑,音频超分算法具有无需修改网络协议,无需额外数据传输,人工生成高频频谱提升用户主观体验的特点。“我们知道丰富的高频声音信号能够带来更加出色的听觉体验,但在实际应用中,受设备采样率等因素影响,我们时常会遇到不含高频信号的窄带语音,从而对听感产生影响。”肖玮介绍道。
为了解决这一问题,行业内已经公开一些利用深度学习的思路,完成宽带频段重建的工作;但由于对数据的强依赖,外加模型体积过大,复杂度也相对较高,难以部署在客户端。为了解决这一问题,多媒体实验室将深度学习技术与经典语音信号技术处理、心理模型等技术进行融合,通过轻量级建模,从而克服了一般深度学习算法中对数据的过度依赖以及网络模型过大等问题,仅2MB的技术模型就可轻松部署于各类客户端,同时保证宽带频段的重建精度和质量。此外,肖玮还向与会专家现场进行demo演示,就超分算法如何面对真实应用场景、优化建模方法以及功能扩展等方面与与会专家进行了深度交流。
目前这一算法已部署至腾讯会议,实现由窄带语音输入到宽带语音输出的转换;此外,在提升听障人士语音通信体验领域,超分算法也具备着巨大的应用前景。
(腾讯多媒体实验室专家研究员 肖玮)
深度学习算法助力语音增强
腾讯多媒体实验室专家研究员王燕南,就实验室在语音增强、伴奏分离等领域的研究进展进行了分享。在录音过程中,由于环境和采集设备的局限性,可能会捕捉到多种不同的声音,而在采访等场景中,我们很可能只需要一到两种声音,那么应该如何将有用的声音分离出来呢?为了解决这一问题,多媒体实验室提出基于神经网络深度学习的概率学习框架。
以往处理这类问题,业内人通常会采用一种名为常规最小均方误差的训练准则,进行深度学习,在信号处理的过程中,这一模型能够通过矩阵式的运算,让输出的信号尽可能接近输入的信号。由于较高的计算量难以满足即时通信环境下的需求,无法实现高效的语音分离,多媒体实验室自研了基于深度神经网络的非线性谱映射单通道语音分离的最大似然法。简单说来,这一方法是基于概率模型对海量语料数据进行深度学习,从而实现高清晰度与高效的语音分离工作,同时由于计算量的降低,它还具备更出色的泛用性,能够适用于更多的场景,诸如语音增强、伴奏分离等。
此外,王燕南还针对深度学习算法在应用中面临的挑战,如模型的鲁棒性(在极低信噪比、数据失配等情况下的效果)、计算量优化的挑战等内容,和与会专家进行了交流。
(腾讯多媒体实验室专家研究员 王燕南)
名校师生Lab Tour,深度开展校企交流
会后,腾讯多媒体实验室向澳大利亚国立大学、中国香港科技大学以及华南理工大学的师生发出邀请,一同前往腾讯多媒体实验室参观访问,并就未来进一步展开校企合作进行了热烈的探索与讨论。
目前,仅在音频领域,多媒体实验室所打造的包括唱歌修音、语音增强、端到端音频评估等解决方案,已在腾讯公司内外的众多产品中进行应用。此外,多媒体实验室有近50项提案被下一代视频编码标准VVC/H.266采纳。在虚拟现实(VR)、点云(PCC)、网络传输协议 (DASH)、多媒体系统(OMAF、CMAF、NBMP)等相关多媒体标准中,也取得了突破性进展,获得多项标准核心专利,多名团队成员在多个全球标准组织担任董事、编辑、领域主席等重要席位。与此同时,多媒体实验室也大力投入国家自主标准建设,成为国际行业标准不可忽视的影响者。
Udesk客服发布2016年客户服务行业趋势报告
编辑导读从2014的兴起到2015年的风起云涌,现在再次提及SaaS大家也许已经不再陌生,2015更是被业界冠以“SaaS元年”的称号。Udesk客服统计中心,联合4PS联络中心国际标准研究中心刚刚发布的一份关于2016年客户服务行业趋势报告,这项报告无论是对SaaS客服软件提供商调整产品线的布局,还是对企业级用户客户服务的建设和发展方向、亦或是业内投资人都可谓是一场及时雨。
从2014的兴起到2015年的风起云涌,现在再次提及SaaS大家也许已经不再陌生。2015是属于SaaS 的,无论是从创业者、投资人还是各大研究机构的角度来看,其声音一度超过了 2C 领域,成为圈内圈外关注、议论的焦点。所以,2015更是被业界冠以“SaaS元年”的称号。那么2016年企业级服务市场能否继往开来,我们还要拭目以待。特别是SaaS类客户服务软件发展,业界尤为关注。最近大家更是就其行业前景及发展趋势众说纷纭,或许他们更多的是凭借个人执念和久经沙场的经验侃侃而谈罢了。但是,Udesk客服统计中心联合4PS联络中心国际标准研究中心刚刚发布的一份关于2016年客户服务行业趋势报告,似乎让我们可以有据可循了。这项报告无论是对SaaS客服软件提供商调整产品线的布局,还是对企业级用户客户服务的建设和发展方向、亦或是业内投资人都可谓是一场及时雨。报告预测了2016年客户服务行业发展四大趋势(以下是报告重点内容解读)。1全渠道服务模式将全面提升客户服务能力2014年客户服务行业服务模式开始多样化,在单渠道、多渠道模式的基础上,新增了全渠道服务模式。全渠道客户服务模式可谓是客户服务行业发展的集大成者,既囊括了传统的客服渠道,又融入了新兴的种类,并且通过进一步整合用户数据、知识数据提升了企业客户服务的效率,得到了企业、客服、客户的认可。2社交媒体客户服务促进企业营销随着社交媒体的发展,社交媒体客户服务已经成企业客户服务的主要渠道之一。微信和微博是2015年国内主流的两大社交媒体平台,二者作为社交媒体客户服务的主要渠道,微信增长势头强劲,而微博表现平平,不尽人意。得益于微信惊人的覆盖率和数量众多的公众号,微信作为企业级客户服务渠道的后起之秀,在渠道服务次数对比上,以绝对优势稳居第三位。报告显示2015年,由于对社交媒体自传播特性的强烈需求,媒体和互联网金融行业尤为偏爱社交媒体客户服务。媒体选择社交平台作为客户服务渠道的比率高达83%,而互联网金融行业达到了72%。企业通过微信将产品、内容、沟通三方面紧紧地结合在一起,让客户服务与客户营销相伴相生,成为企业使用社交媒体客户服务的主要原因。相信在2016年,微信将会延续2015年的发展之势,成为企业客户服务渠道中的一匹黑马。3企业通过采用自助服务将更好地节省客服成本目前客户服务行业自助服务种类繁多,主要包括视频教程、文档、IVR自助语音、社区论坛、智能机器人等。根据报告调查显示,节约成本是企业选择采用自主服务的主要原因。另外,文档和视频教程已经成为当前企业提供自助服务的首选。其中视频教程2015年增长显著,成为自助服务的一大亮点。相较于14年,一直被大家热议的社区论坛和智能机器人,在过去的一年中增长有限。同样,IVR自助语音因其复杂性,仅被少数大型公司采用,并无明显增长。至于智能机器人,由于回答准确率低下和操作复杂等原因,预计2016年计划采用的企业也只有5%而已。4SaaS化服务时代即将到来
报告调查,68%以上的企业16年将尝试使用SaaS部署客户服务。其中47%的企业计划部分使用SaaS,21%的企业计划全部/大部分使用SaaS。从选择原因上分析, 其中70%以上的企业因SaaS服务的快速部署、快速启用以及成本低廉的特点而选择SaaS。从企业规模对比,中小企业由于其自身的特点和局限性,是未来SaaS服务行业的主力军。
币聪财经-新秀社交媒体内容之王STEEM目前处于多月斐波纳契重要支撑位
在过去的24小时交易中,加密货币Steem的价格下跌了2.24%。目前,Steem的交易价格为1.40美元,过去7个交易日内价格小幅上涨0.9%。Steem由联合创始人Ned Scott和Daniel Larimer于2016年推出。Daniel Larimer是一位经验丰富的加密开发人员,负责开发BitShares,Steem以及最近的EOS等项目。Steem平台开始成为基于区块链的社交媒体网络,允许内容创作者和社交媒体参与者获得奖励。Steemit平台是所有魔术发生的地方。内容创建者创建他们的内容并将其发布到Steemit平台,供其他用户前来查看。然后,用户可以选择喜欢,分享和赞成内容,以及向他们喜爱的内容创建者提供小额捐赠。Steemit令人着迷的是它完全分散了。它不像reddit那样在中央服务器上运行。相反,它是在区块链上运行的,并且非常流畅,除非你被告知,否则你无法告诉它是基于区块链的。该平台获得了大量的支持,每天都有大量的内容创作者。有关Steem和Steemit的更多信息,请参阅我们的“ 什么是Steem ”指南和Steemit的评论。这个27个月大的硬币目前在整个行业的整体市值排名中排名第36位。加密货币目前的市值总计为3.72亿美元。随着加密货币在过去30个交易日下跌17.51%,过去90个交易日下跌64%,它有重大损失。让我们继续分析Steem长期的价格行为。价格分析 STEEM / USD - 长期 - 每月图表分析上面的超长期月度图表,其中每个柱形代表1个月的时间段,我们可以看到加密货币经历了一个令人难以置信的长期看涨运行,在两个波浪中分开,整个2017年价格行动从低点0.15美元开始在2017年4月2日,并在2018年1月3日升至9.25美元的历史新高。这是前所未有的价格上涨,从低到高共计3,700%。我们可以看到市场在创出历史新高之后开始滚动。价格行动曾在.618斐波纳契回撤中短暂获得支撑,定价为3.62美元。这是从上述整个看涨运行中测量的回撤。价格行动未能保持在这一水平之上并继续下跌,直到它在目前交易的位置获得支撑,在.886斐波纳契回撤价格为1.18美元。我们可以看到这一支撑位受1.272斐波纳契延伸下行支撑,价格为1.27美元。这个向下的斐波那契延伸是从2018年1月看到的整个看跌波动来衡量的。让我们继续分析最近一段时期的价格走势,以突出任何潜在的支撑和阻力区域。STEEM / USD - 中期 - 每日图表从上述中期市场分析市场,我们可以看到,2018年4月价格行动从2018年4月1日的1.32美元的低点开始并在2018年4月27日延伸至4.76美元的高点时,价格走势较小。这是从低到高的总价格上涨250%。5月份市场继续走低,跌破100日均线,直至获得长期支撑.786斐波纳契回撤价格为2.09美元。然而,市场未能保持这一水平并且在6月份继续下跌,直到获得支撑位于.886斐波纳契回撤位1.18美元。短期下行1.272斐波那契延伸的价格为1.37美元,进一步支撑了这一支撑区域。如果在过去一年中看到的看跌轨迹仍在继续,我们预计将在.886斐波纳契回撤位置再次获得大幅支撑,定价为1.18美元。如果看跌压力可以推动市场低于这个水平,我们预计即时支撑位于中期下行1.414斐波那契延伸定价0.98美元,随后下行1.618斐波那契延伸定价0.43美元。或者,如果市场看涨势头可能增加,我们预计直接阻力位于1.80美元附近的月度高位。预计长期阻力位于此水平之上.786斐波纳契回撤位于2.09美元。值得一提的是,由于100日均线位于该区域附近,目前徘徊在2美元左右的区域,因此这一阻力位将需要大幅动能。RSI指标目前正在略微看跌交易,略低于50手。如果我们预期看涨势头重新进入市场,我们将需要看到RSI突破50手并继续缓慢上涨。让我们继续分析长期相对于比特币的价格行为。STEEM / BTC - 长期 - 每月图表从长期来看分析相对于比特币的市场,我们可以看到2017年是一个令人难以置信的看涨年份,因为价格行动从2017年3月13日的8,825 SATS低点开始,并在6月9日延伸至99,998 SATS的历史新高,2017年。这是从低到高的价格上涨1,500%。市场在2017年下半年开始下跌,直到2017年12月找到趋势的底部。我们可以看到价格走势继续下行再次下跌。市场目前处于长期支撑位.886斐波那契回撤价格为16,436 SATS。此Fibonacci回撤是从上面的整个看涨运行轮廓测量的。让我们继续在最近一段时间内进一步分析市场,以突出潜在的支撑和阻力区域。STEEM / BTC - 长期 - 每日图表在较短的时间内分析市场,我们可以看到,当价格行动从2017年12月7日的8,825 SATS低点开始并在2018年1月25日升至60,359 SATS的高点后,STEEM再次看涨。这是价格上涨总计610%。在创下历史新高后,市场继续下跌,在2月份跌至100日移动平均线,直到短期内获得支撑.786斐波纳契回撤价格为20,041 SATS(以黑色绘制)。这个短期的斐波那契回撤是从上面概述的整个610%的价格上涨来衡量的。市场继续在4月份进行另一次较小的看涨运行,就像加密货币市场的其他部分一样,但在5月和6月期间延续,直到它在长期目前交易时获得支撑.886斐波纳契回撤(以黄金计算)售价16,436 SATS。如果市场继续看跌压力,我们预计即时支撑位于短期.886斐波纳契回撤(以黑色绘制),定价为14,916 SATS。如果市场确实将其做得如此之低,那么到目前为止它将在2018年创造新的交易低点。或者,如果多头可以重返市场,我们预计当前阻力位于100天移动平均线,目前徘徊在23,000 SATS手柄附近,随后是长期.786斐波纳契回撤,定价为25,890 SATS。原文:https://www.investinblockchain.com/price-analysis-steem/作者:Yaz Sheikh编译:bsatoshi稿源译:https://www.bsatoshi.com
喜欢社交就去社交,不必刻意去减少|SNF 社交斋戒特写之一
“我错过了一个亿的红包呀!”小X语速很快地说出这句话,脸上露出痛心的表情。专业年会那天晚上,群里人人发大红包,她自然也发了,却因为斋戒没法一直守在群里拼手速,所以除了自己的红包以外一个红包也没抢到。 刚刚过去的十五天对她而言有些艰难。 ——1800个好友的社交达人 收到斋戒是在一个周日晚上的七点钟,斋戒将在一个小时后开始。正在看电影的小X匆忙编辑了一条朋友圈:“我参加了一个社交网络斋戒活动,马上要进入斋戒期,每天只能用30min微信,大家可以用其他任何方式联系我。”配图用的是社交网络斋戒计划的手环照片。“当时我就是有点措手不及的感觉。”她回忆说。 在所有斋戒计划的参与者中,小X也是微信好友数量最多的之一。现在的1800多个是她已经删过几百个之后的结果。 小X是国内最早进入网络社交领域的用户。2004年,还是初中生的小X就开始在网上做粉丝团,活跃在现在已经被腾讯关闭的QQ聊天室,在论坛回帖,在雅虎部落发言,当过2003年上线的百度贴吧的第一批吧主,还是新浪博客的元老博主。微博内测时,小X也是第一批用户。现在,她运营着自己的微信公共号、会录歌发布、也会在映客上直播。好友中,既有身边的同学、曾经的同事,还有豆瓣来的豆友。 “好友里面,微博过来的比较少,粉丝都爱加QQ。所以说我对社交软件研究得比较多,也好奇减少微信使用对生活的影响有什么影响,为什么大家都离不开微信呢?当然,参与活动的初衷还是想减少无效社交,更专注在生活和学习上。”就怀着这样的小心思她参加了这一次的斋戒实验。 ——社交不该让我患得患失 在避免无效社交这点上,小X觉得斋戒取得了一些成效,她说:“有些人在联络时发现有些困难,没那么方便,就不想再联络,这些人可能本来就不很重要,所以丢失了一些这样的人挺好的;有些人你确实不想联系,这也是一个借口,可以不去辛苦维系这种关系了。” 曾经小X不太愿意删一些曾经有交集但是由于客观或主观因素已经疏远了的朋友。患得患失让她开始产生了一些焦虑,“他不会在你朋友圈点赞,你也不会去他朋友圈点赞,以后也没有联系,为什么要存在在彼此的微信里面?”她有时会这样问自己。她开始有意调整自己的社交关系。她打算区分出来有些朋友确实是以后不会联系的,哪些朋友是还有可能联系的。她愿意把更多的重心放在志同道合的人身上,简化弱关系和一些酒肉朋友。 “以前我是那种很辛苦在维系所有关系的人,非常累。微信上很多人,以前天天在一起的也有,当你的圈子变了以后,很久没有联系,发现根本就回不到以前的状态了。有些二十几年的朋友,但他跟你三观真的不合,你们以后还是往两个方向走,辛苦地维持这段关系为什么呢?就因为交情久吗?现在就觉得没有必要,所以斋戒期间我开始改变自己的交友策略。” 小X最喜欢与有着同样偶像的粉丝朋友交往。在她看来,粉丝至少在喜欢同一个明星这件事情上是契合的,因此不管三观合不合,彼此之间都能够非常信任,不会在意他人的背景。2008年,她刚上大学,是毛孩的粉丝。去参加西安粉丝见面时人生地不熟的她遇到了一个非常棒的西安本土粉丝,不仅成为了小X那次行程的最佳向导,也在日后成为了她的密友。 小X一直觉得信息秒回是最好的聊天技巧。斋戒之后,她却改变了自己有消息必回的强迫症。“以前有人一直给我发信息到我都有点不耐烦聊不下去了我就会回消息说你不要跟我说话了。但是现在就可能你给我发十条消息我都不会回,因为觉得没有必要。”这让她在吃饭或者聊天的时候更加专注,不会频繁的查看手机,这个习惯也在斋戒后留了下来。 ——陷入错失恐惧 小X没有数过自己的微信群数量,但她觉得可能超过了一百个。她并不喜欢在群里聊天,除非是自己开启一个话题,或者话题以自己为主。”有的时候,被@了,就要回去看到底是哪里提到了我?结果翻了好久,发现是@所有人。”说道这里,她也笑了起来。 斋戒初期,她回归了微博和QQ,刷淘宝的时间也大大增加,有时还会下意识打开和微信APP图标很像的某软件,总的手机使用时间并没有下降。即使是后来其他软件的使用时间整体下降了,小X仍然没有感受到自己注意力更加集中,反而感到心理压力有些增加。“微信消息虽然你没看,但收到了嘛,有很多待处理的消息在那里,内心还是有点儿惦记的。收到了生日祝福也没有回复,这些东西你肯定还是有一点儿放不下的。”她说。 关闭了微信消息提醒之后,自己打开微信的频率反而更高。因为总是担心错过什么重要消息,隔不到一个小时她就要点开一次微信,当进入微信界面看到朋友圈或是订阅号的小红点,又忍不住刷一刷,时间总是超出计划要求,这也让她格外烦躁。 导师开会的通知被发在了微信群里并提到所有人,没有人因为小X的斋戒宣言而额外用其他方式抄送给她。课程的老师也把期末复习的重要资料放在了一个个课程群里。“文件一下就刷过去了,还得回头找,因为考试要用也不能不看,把资料收藏下来,也要打开微信的收藏夹去看。”小X有点烦恼,她希望课代表能给每个选课同学发送统一的邮件,”但是没办法,都是在微信群里发,不知道这个世界为什么变成这个样子。”因为期末考试的一些要求、资料,这些事情我都往后推了。但凡要用微信去交流的事情,都想往后拖,等着斋戒结束之后再做。”其实能不能在自习室坐下去可能和控制社交网络使用或许并没有那么相关,而本质上是个人的特质:“可能我不是特别爱学习,特别勤奋的那种人,社会活动比较多一些;如果说那种比较勤奋的人,可能刚好微信关了,他就可以静下心来一直好好学习,但是我并没有因为这件事情就把这些东西断了,有微信和没微信都不会让我注意力集中在重要的事情上。” 斋戒第三天,小X重新打开了消息提醒,甚至有一段时间,小X在等待着斋戒的结束,甚至有些着急。 ——喜欢社交就去社交,不必刻意减少 小X的在英国的好朋友就为了和她保持联络被迫新下载了QQ。她准备斋戒后好好和几个朋友解释一下情况:“其实有三五个朋友是应该经常联系的,但因为斋戒就没有联系,本来以为不用微信我的社交会转到别的方式,但是事实上没有人愿意跟你一起转。我其实是在等着斋戒结束,觉得可以好好地找他们说这件事情了。” 斋戒的第一天正是11号的晚上,双十二购物节的开端,“我妈微信跟我说要我帮她抢京东的电器,我就跟她说我不能上微信,我妈很生气,就让我表弟去买,把我排除了。后来有一天我爸要买羽绒服,在微信上发了很多图片给我,让我帮他挑,我也没办法做到。”她没想到斋戒还能惹得妈妈生了气。 斋戒结束后的第二天,小X的微信全天使用时长又到达了5、6个小时的水平。除了补斋戒期间的微信课程群中错失的信息用去的1.5小时,小X觉得剩下的4个小时就是回到了斋戒前的水平。但是每次用微信的时候她都感到有点儿愧疚,回完消息就立刻退出后台,这似乎也是斋戒无意中留下来的“后遗症”。 但是冷静下来,小X收获的最大感悟就是:不喜欢社交也不用强迫他社交,喜欢社交就去社交,也不用刻意去减少。 小X解释道:“有的人会觉得自己特别不擅长社交,或者是很烦这么多社交,其实社交这个事情的多和少与你的个人发展可能没关系,因为我有朋友就是那种一天可能就看一次手机的人,你永远找不到这个人,但也没有人缘不好或者引起其他问题。每个人找到自己舒服的状态就OK。而对我来说,我觉得社交是我生活中最大的一部分,我也应该学会享受这样的生活方式。”小X坦然说道。
报告|移动IM厂商从何种途径有效的教育企业用户?
T客汇官网:tikehui撰文 |移动信息化研究中心分析师 于秀欣近年来,企业级IM市场越来越火热,随着移动互联网的来临,移动IM也备受企业级市场的青睐,企业希望将此成为员工沟通交流的载体,但是在互联网信息铺天盖地的现在,从何种渠道有效的教育企业用户是却是厂商的一大困扰。
重要说明:本文中的中小型企业是指500人以下的企业,中大型企业是指500人以上的企业。1.移动IM走在“企业标配工具”的路上根据数据显示,超过半数的企业已使用移动IM。由于移动IM即时性强、可追溯性强,很多企业更愿意通过移动IM进行试水。那么厂商是从何种渠道有效的教育企业用户的呢?2. 厂商利用线上信息渠道教育用户颇见成效数据表明,在移动IM企业用户中,通过移动社交媒体、专业技术、产品论坛和传统互联网媒体获取信息是企业用户最常用的途径。其中,有46%的用户通过移动社交媒体获取信息,有45%的用户通过专业技术、产品论坛获取信息,有36%的用户通过传统互联网媒体获取信息。值得注意的是:这三种途径也是企业用户认为最有效的途径!原因在于,线上信息渠道提供的信息量大,信息传播范围广,更新速度快,企业用户可以从中发现很多有价值的信息,越来越多的“行业专家”倾向于在媒体网站、产品论坛发表自己的观点,信息价值不断提升;而线下渠道相对与线上信息渠道提供的信息量较少,信息更新速度较慢,比如通过系统集成商获取产品信息。企业用户通过系统集成商获取移动IM产品信息的频率也比较高,但是却并不认为这种途径有效的,系统集成商提供的信息虽然专业性强,但是时效性却相对较低。3. “教育”“高颜值”用户,“第三方咨询”应该更专业中小型企业常通过移动社交媒体、专业技术、产品论坛和传统互联网媒体获取信息,并且认为这三种途径是最有效的信息获取途径,与总体的变化趋势相同。中大型企业更倾向于通过专业技术、产品论坛、系统集成商、传统互联网媒体、第三方信息咨询机构、厂商销售部门和移动社交媒体获取移动IM产品信息,但是在这几种获取产品信息的途径中,第三方信息咨询机构获取信息的有效性较低。原因在于,对于中大型企业而言,其使用IM的应用场景更为复杂,对产品稳定性、高并发承载能力、还有信息安全性有更高的要求,而第三方信息咨询机构可能对企业用户的业务特点、客户属性,以及企业内部的业务流程了解并不深入,不能满足中大型企业对移动IM的产品开发、系统咨询、技术服务等方面高要求。因此,目前国内缺乏专业的第三方信息咨询机构,企业用户很难从其获取有效的信息。
安全论坛 资料备份
各大优秀黑客技术论坛:Hack Forums: Hack Forums是目前最为理想的黑客技术学习根据地。该论坛不仅在设计上面向黑客群体,同时也适用于开发人员、博主、游戏开发者、程序员、图形设计师以及网络营销人士。Evil Zone: Evil Zone是一个专门面向黑客群体的论坛。当然,其中也涉及科学、编程以及艺术等领域的内容。Offensive Community: Offensive安全社区基本上属于一个“具备大量黑客教程收集库的黑客论坛”。Hellbound Hackers: 这里提供与黑客技术相关的各类课程、挑战题目与实现工具。Hack This Site: HackThisSite提供合法而安全的网络安全资源,在这里大家可以通过各类挑战题目测试自己的黑客技能,同时学习到更多与黑客及网络安全相关的知识。简而言之,这是学习黑客技术的最佳站点。Hack Hound: 一个拥有大量相关教程及工具的黑客论坛。 Binary RevolutionHacking Forums: 提供各类教程、工具以及安全文章。Exploit-DB: Exploit-DB提供一整套庞大的归档体系,其中涵盖了各类公开的攻击事件、漏洞报告、安全文章以及技术教程等资源。 Crackmes de: 在这里,大家可以通过解决各类任务(即crackmes)来测试并提升自己的相关技能水平。Cracking Forum: 提供各类最新入侵教程及工具。Ethical Hacker: 另一个黑客论坛,提供多种教程及工具资源。Rohitab: Rohitab专注于安全类文章、计算机编程、Web设计以及图形设计等领域。Enigma Group: Enigma Group提供合法且安全的安全资源,大家可以在这里通过各类培训任务测试并拓展自己的技能水平。Hack Mac: 提供与Mac平台相关的黑客、入侵以及安全保护教程。OpenSC: Open SC是一个安全研究与开发论坛,且号称是全球知名度最高的恶意软件论坛。Packet Storm: 提供与数据库相关的建议、漏洞利用、工具、论文以及安全新闻。 希望这份名单能够给大家带来切实帮助。如果您觉得不错,也请把它分享给自己的朋友和信息安全关注者。
java 论坛_5 个最好用的 Java 开源论坛系统
大家好,又见面了,我是你们的朋友全栈君。大家好!我是 Guide 哥,Java 后端开发。一个会一点前端,喜欢烹饪的自由少年。最近有点小忙。但是,由于前几天答应了一位读者自己会推荐一些开源的论坛系统,所以,昨晚就简单地熬了个夜,对比了很多个开源论坛系统之后,总结成了这篇文章。这篇文章我一共推荐了 5 个论坛类开源项目,除了有 1 个是基于 PHP 开发之外,其他都是基于 Java ,并且大部分都是基于 Spring Boot 这个主流框架来做的。欢迎小伙伴们在评论区补充啊!ღ( ´・ᴗ・` )比心1. NiterForumGithub 地址:https://github.com/yourkevin/NiterForum[1]官网地址:https://niter.cn/forumStar : 0.5k简介:尼特社区-NiterForum-一个论坛程序,几乎具有一个论坛/社区所应该有的全部功能-后端 Springboot/MyBatis/Maven/MySQL-前端 Thymeleaf/Layui-可供初学者,学习、交流使用。技术栈: 后端 Springboot + MyBatis + Maven + MySQL 前端 Thymeleaf + Layui推荐等级 :⭐⭐⭐⭐⭐评价:可以说 NiterForum 提供了一个论坛所能提供的所有功能,功能特性覆盖的非常全面。但这并不是这次推荐他的主要原因。作为本次论坛项目中第一个推荐的项目,NiterForum 的 NB 之处就是:他提供 NiterApp,完美适配了 NiterForum,支持 app 端扫码登录!2. SymphonyGithub 地址:https://github.com/88250/symphony[2]官网地址:https://ld246.com/[3]Star : 0.7k简介: 一款用 Java 实现的现代化社区(论坛/问答/BBS/社交网络/博客)系统平台。技术栈: Latke (作者自研的以 JSON 为主的 Java Web 框架)+jsoup[4] + Jodd[5]推荐等级 :⭐⭐⭐⭐评价:讲真,Symphony 是笔者目前见过的论坛项目中功能最齐全的一款(没有之一),满足多维需求:面向内容、面向知识问答、面向用户分享、交友、游戏等。而且 Symphony 风格时尚,充满创新、好玩的特性。交互体验一级棒。这个项目的缺点也很明显,那就是项目使用的技术栈不是主流,比较小众(不过,作者自研 Java Web 框架的精神还是非常值得赞赏的!)。sym3. 码问社区Github 地址:https://github.com/codedrinker/community[6]官网地址:http://www.mawen.co/?sort=hot[7]Star : 1.1k简介:开源论坛、问答系统,现有功能提问、回复、通知、最新、最热、消除零回复功能。技术栈:SpringBoot + MyBatis+MySQL/H2+Flyway推荐等级 :⭐⭐⭐⭐⭐评价:码问社区的作者是阿里巴巴的一位大佬,开源了很多有意思的项目,码问社区就是其中一款,采用 SpringBoot + Vue 等主流技术栈打造,并配有整个开发过程的视频讲解[8]。实战项目首推。4. MDclubGithub 地址:https://github.com/zdhxiong/mdclub[9]官网地址:https://community.mdclub.org/[10]Star : 0.5k简介:MDClub 漂亮、轻量且好用,它能让在线讨论变得更加轻松愉悦技术栈:PHP+MySQL推荐等级 :⭐⭐⭐⭐评价 :MDclub 是一款简约风格的论坛项目。漂亮、轻量且容易上手。代码实现基于 MDUI 框架,分层分明。网站适配多种终端,从手机、ipad 到大屏显示器,均能自动适配,并且提供根据操作系统的主题,自动切换亮色主题和暗色主题。这个特性真的超赞的~mdclub.png5. 朋也社区Github 地址:https://github.com/tomoya92/pybbs[11]官网地址:https://tomoya92.github.io/pybbs/[12]Star : 1.1 k简介:更实用的 Java 开发的社区(论坛)技术栈:Spring-Boot + Mybatis-Plus + MySQL推荐等级 :⭐⭐⭐⭐评价:朋也社区基于 Java 语言,采用主流的 Java Web 开发框架(SpringBoot)进行开发。个人觉得朋也社区最大的亮点是在设计层面上支持高度的可定制化。要实现这点很不容易,需要有很强的设计能力,并且朋也社区在实现过程对于各种集成的服务支持配置化(可随意开启或关闭)。如果有帮助的话,不要吝啬你们手中的在看和赞!“怼”起来!以上 4 本优质原创 PDF 私信我回复“资料”即可免费领取。发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/156741.html原文链接:https://javaforall.cn
借势AI系列:人工智能驱动的舆情分析与社交媒体监测【技术应用与实战示例】
随着社交媒体的广泛使用,舆情分析和社交媒体监测在企业、政府和媒体机构中变得至关重要。人工智能(AI)的进步为舆情分析提供了强大的技术支持,帮助分析和预测社交媒体平台上的趋势和情绪。本文将探讨如何使用AI技术实现有效的舆情分析,并提供相应的代码实例。一、舆情分析的背景与重要性在当前的数字化时代,社交媒体已成为人们获取信息、表达观点的重要渠道。舆情分析通过监测和分析社交平台上的数据,帮助机构了解公众情绪和趋势,支持决策制定。传统的人工分析往往难以应对数据规模大、信息更新频繁等挑战,而人工智能的引入使得舆情分析能够更加高效、精准。二、基于人工智能的舆情分析技术2.1 自然语言处理(NLP)在舆情分析中的应用自然语言处理是舆情分析的核心技术。NLP方法用于文本处理、情感分析、主题提取等,帮助机器理解并分析社交媒体文本。以下是NLP在舆情分析中的主要应用:文本预处理:对社交媒体文本进行分词、去除停用词、词干化等操作。情感分析:通过机器学习模型或深度学习模型,识别文本中的情绪倾向(如正面、中性或负面)。主题建模:提取社交媒体文本中出现的主要话题,帮助监测热点事件和趋势。2.2 常用的机器学习模型在舆情分析中,常用的机器学习模型包括情感分类模型(如支持向量机、朴素贝叶斯)和深度学习模型(如卷积神经网络CNN、长短期记忆网络LSTM)。此外,预训练的语言模型(如BERT、GPT-3)因其强大的语义理解能力,广泛应用于舆情分析。image-20241031193141964三、利用Python进行舆情分析:代码实例在本节中,我们将使用Python、NLP和机器学习技术,通过获取Twitter数据实现舆情分析的基本流程。3.1 数据获取可以使用Twitter的API接口收集数据(需要注册并获取API密钥),本文为了演示,将模拟收集到的数据。代码语言:python代码运行次数:2复制Cloud Studio 代码运行import pandas as pd
# 模拟数据集
data = {
"text": [
"I love the new product! It's amazing!",
"The recent update is terrible and disappointing.",
"Looking forward to the new features in the next release!",
"The product is overpriced and not worth it.",
"Excellent customer service and support!",
"The latest release has so many bugs, very frustrating."
],
"label": [1, 0, 1, 0, 1, 0] # 1: Positive, 0: Negative
}
df = pd.DataFrame(data)
print(df.head())3.2 数据预处理在进行分析之前,需要对文本数据进行清洗和预处理,包括去除标点符号、停用词以及转换为小写。代码语言:python代码运行次数:1复制Cloud Studio 代码运行import re
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
import nltk
nltk.download("stopwords")
nltk.download("punkt")
# 数据清洗函数
def preprocess_text(text):
# 移除标点符号
text = re.sub(r"[^\w\s]", "", text)
# 转换为小写
text = text.lower()
# 去除停用词
tokens = word_tokenize(text)
tokens = [word for word in tokens if word not in stopwords.words("english")]
return " ".join(tokens)
# 应用数据清洗
df["cleaned_text"] = df["text"].apply(preprocess_text)
print(df[["text", "cleaned_text"]].head())3.3 情感分析模型构建接下来,使用逻辑回归(Logistic Regression)模型进行情感分类。为简单起见,我们将使用scikit-learn库进行模型训练。代码语言:python代码运行次数:0复制Cloud Studio 代码运行from sklearn.model_selection import train_test_split
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score, classification_report
# 特征提取
vectorizer = CountVectorizer()
X = vectorizer.fit_transform(df["cleaned_text"])
y = df["label"]
# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 训练逻辑回归模型
model = LogisticRegression()
model.fit(X_train, y_train)
# 预测并评估
y_pred = model.predict(X_test)
print("Accuracy:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))3.4 使用BERT进行情感分析(进阶)我们还可以利用BERT模型进行更复杂的情感分析。BERT模型需要较强的计算资源,这里仅展示代码框架。代码语言:python代码运行次数:0复制Cloud Studio 代码运行from transformers import pipeline
# 使用预训练的BERT模型进行情感分析
sentiment_pipeline = pipeline("sentiment-analysis")
# 示例文本分析
texts = [
"I love the new product! It's amazing!",
"The recent update is terrible and disappointing."
]
# 输出分析结果
for text in texts:
print(sentiment_pipeline(text))四、实时监测与可视化舆情分析的一个关键环节是实时监测和可视化数据变化。可以通过API定时获取数据并更新分析结果,展示在可视化平台上(例如Tableau、PowerBI)。4.1 数据可视化示例代码语言:python代码运行次数:1复制Cloud Studio 代码运行import matplotlib.pyplot as plt
# 模拟正负情绪的比例数据
sentiment_counts = df["label"].value_counts()
sentiment_counts.plot(kind="bar", color=["blue", "red"])
plt.title("Sentiment Analysis")
plt.xlabel("Sentiment")
plt.ylabel("Count")
plt.xticks([0, 1], ["Negative", "Positive"], rotation=0)
plt.show()image-20241031193120844五、舆情分析的挑战与应对策略虽然人工智能在舆情分析中提供了强大的工具,但其在实际应用中面临许多挑战。以下将详细讨论主要挑战,并探讨如何通过改进技术和方法来应对这些问题。5.1 数据量与数据质量社交媒体平台每天生成大量的数据,实时分析的需求导致处理这些数据变得尤为困难。除此之外,社交媒体数据的质量参差不齐,存在大量的噪声信息(如广告、重复内容、虚假消息等),这些噪声会干扰分析结果。应对策略:数据清洗与预处理:使用去噪算法和文本过滤器来清理无关或误导性内容,从而提高数据质量。实时流处理技术:借助Kafka、Spark Streaming等实时数据流处理工具,能够高效地处理和分析海量数据。使用大规模分布式计算:云计算平台(如AWS、Google Cloud)提供的分布式计算和存储支持,能够提高处理大规模社交媒体数据的能力。5.2 语言多样性和语境理解在社交媒体上,人们使用不同的语言和方言,且语境多变,传统的NLP模型很难正确解读这些信息。特定的表达、情绪和文化背景可能导致模型对情感和话题的误判。应对策略:多语言模型:采用多语言预训练模型(如mBERT、XLM-R),这些模型可以处理多种语言的文本,有助于提高分析准确性。语境增强技术:通过强化学习(Reinforcement Learning)和语境理解技术,可以让模型在特定语境中更好地捕捉情绪和态度。人工校准:结合专家的人工审核,特别是在关键事件和敏感主题上,确保分析的准确性和可靠性。image-202410311932086385.3 实时性需求与高效性舆情的实时性对监测系统提出了较高的要求,而人工智能模型的复杂性往往会影响响应速度,尤其是深度学习模型在处理实时数据时的性能瓶颈较为明显。应对策略:模型轻量化:采用蒸馏(Distillation)、剪枝(Pruning)等技术压缩模型,提高其响应速度。缓存机制:对热点话题进行缓存,使其在多次访问时快速响应。边缘计算:将部分计算任务分配至边缘设备或本地服务器,降低云端的计算压力。5.4 社交媒体平台限制社交媒体平台对数据获取设置了许多限制,尤其在数据隐私法规(如GDPR)和平台策略(如API速率限制)的约束下,获取和处理数据可能面临较大困难。应对策略:使用合法数据源:确保数据获取的合法性,使用平台提供的API或第三方数据提供商。构建匿名数据分析流程:在数据分析过程中遵循隐私保护原则,避免个人信息的泄露。利用代理及缓存机制:在合理合规的情况下,适当利用缓存和代理服务,优化API速率使用。六、AI技术在舆情分析中的新趋势随着人工智能的发展,越来越多的新技术被引入到舆情分析中,为未来的应用带来了许多新的可能性。image-202410311932565736.1 深度学习和自监督学习传统的有监督学习在大量标注数据的需求上存在瓶颈,而自监督学习利用未标注的数据生成标签,有望在舆情分析中发挥更大作用。应用实例:使用自监督BERT模型进行舆情分析BERT等自监督学习模型已经在NLP领域取得了显著成果。以下代码展示了如何使用自监督BERT模型处理舆情数据:代码语言:python代码运行次数:1复制Cloud Studio 代码运行from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
# 加载BERT自监督学习模型
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
model = AutoModelForSequenceClassification.from_pretrained("bert-base-uncased")
# 示例文本
texts = [
"This product is revolutionary and outstanding!",
"I'm very disappointed with the recent changes."
]
# 数据预处理
inputs = tokenizer(texts, return_tensors="pt", padding=True, truncation=True)
outputs = model(**inputs)
logits = outputs.logits
predictions = torch.argmax(logits, dim=-1)
# 输出预测结果
print("Predicted Labels:", predictions)6.2 强化学习与动态话题检测强化学习(RL)能够自适应地调整舆情分析的监测策略。例如,在话题突发时自动调整模型参数,使分析系统更加灵活。动态话题检测应用示例通过将强化学习与动态话题检测算法结合,系统可以根据实时变化的社交媒体数据,自动检测和聚类新兴话题。Python中可以使用Dynamic Topic Model(DTM)库实现这种分析。代码语言:python代码运行次数:0复制Cloud Studio 代码运行from dtm import DynamicTopicModel
# 模拟文本数据
documents = [
"New updates are rolling out soon.",
"The latest product has some interesting features.",
"The update has some major bugs, and users are frustrated."
]
# 构建动态话题模型
dtm = DynamicTopicModel(n_topics=3)
dtm.fit(documents)
# 输出话题模型结果
print("Topic Distributions:", dtm.get_topic_words())6.3 大规模预训练模型(如GPT-4)的应用大规模预训练模型具有强大的语义理解能力,可以更加细致地分析社交媒体内容的情感、立场等信息。GPT-4等模型支持上下文的深度理解,使其在复杂话题和长文本分析中具备优势。使用GPT-4生成舆情摘要GPT-4可以自动生成舆情摘要,帮助舆情监测团队快速理解关键内容和观点。以下为伪代码展示GPT-4的应用(需OpenAI API支持):代码语言:python代码运行次数:0复制Cloud Studio 代码运行import openai
# 设置API密钥
openai.api_key = "your-api-key"
# 输入长文本
long_text = "Here goes the social media data text..."
# 生成舆情摘要
response = openai.Completion.create(
engine="text-davinci-004",
prompt=f"Summarize the following social media text: {long_text}",
max_tokens=150
)
# 输出摘要
print("Summary:", response["choices"][0]["text"].strip())七、未来展望:人工智能驱动的智能舆情分析系统人工智能在舆情分析中的应用已逐渐成熟,未来的趋势将更加注重系统的自动化、智能化和个性化。以下是AI驱动的智能舆情分析系统的几大展望:7.1 自适应的情绪和立场识别未来的舆情分析系统将更注重语义的细腻处理,不仅限于情绪分析,还会结合立场分析、情感增强等技术,帮助企业更全面地了解用户的意图和立场。例如,通过识别评论中的细微语气,自动判断用户是潜在客户还是流失风险较大的用户。7.2 可解释的舆情分析模型舆情分析的结果对商业决策影响巨大,系统的解释性变得尤为重要。未来的模型将更加关注可解释性,使分析结果透明化。例如,基于注意力机制的模型可以指出预测情绪的关键词或句子,帮助用户理解情感来源。7.3 个性化舆情推送和危机预警未来的系统将能够根据用户需求,进行个性化的舆情推送和危机预警,帮助品牌和政府机构更精准地掌握公众意见。例如,通过分析潜在危机迹象,智能系统可以自动向相关团队发出预警,提前采取措施应对。image-20241031193228734总结在数字化时代,舆情分析与社交媒体监测已经成为企业、政府和各类组织的重要任务。利用人工智能技术,这些任务得以高效、精准地完成。本文从多角度探讨了人工智能在舆情分析中的应用,包括数据获取、情感分析、主题建模、趋势预测等方面,并提供了相应的代码实例,展示了如何运用现代AI工具进行舆情监测。舆情分析面临的挑战,如数据质量、语言多样性、实时性需求等,促使技术不断演进。通过结合自监督学习、多语言模型、强化学习等新兴技术,舆情分析的准确性和效率得到了显著提升。此外,随着深度学习和大规模预训练模型的发展,系统能够更好地理解复杂的情感和语境,为用户提供更为全面的分析结果。展望未来,智能舆情分析系统将朝着自适应、可解释和个性化的方向发展。通过引入更先进的算法和模型,舆情监测将变得更加灵活、敏锐,能够更好地满足组织在动态环境中的需求。这不仅将提升舆情管理的效率,也将为决策者提供更具洞察力的支持。随着技术的不断演变,舆情分析的领域将继续扩展,带来更广泛的应用可能性和商业价值。
旅游社交系统
今天给大家介绍一款旅游社交领域的app项目,这个项目是大学一个毕业课设。下面我将从这个项目的构思到项目结项,这一整个过程进行详细的介绍。 项目开始前,首先我们得确定这个项目的边界,然后在这个项目边界内确定具体的需求。例如:这个毕设的题目叫做旅游社交系统,从这个名字中大家就可以看出,在这个项目中至少得有旅游+社交这另个模块。当然这个只是毕设名字和功能特别相近,所以我们可以很清楚的猜到意图。 在开始介绍之前我首先介绍一下这个项目大概功能:首先这个项目是APP+Web后台管理这两大部分。app上面用户可以查看附近的酒店,美食,景点,推送信息。也可以自己发送自己的动态信息,这个动态信息周围的用户也可以看到。后台模块可以对这些美食,景点,风景,动态信息,还有推送的信息进行增删改查发管理操作。 在确定具体需求后我们就得开始确定具体功能模块,至少得知道每个模块的具体功能,以及各个模块之间有什么关联。这个过程可以说是项目的基石,因为它可以保障你做的不是无用功。所以我在这个项目中分六大模块分别为:用户模块,酒店模块,美食模块,景点模块,动态信息模块,温馨提示模块。 在确定具体的功能模块之后就可以开始设计项目的界面原型,界面原型就是一个静态的网页html或者静态的app界面。之所以叫他们为静态的网页,原因就是他们是没有后台交互的,所有的数据都是死数据或者假数据。有些人可能会说自己前端上面基础太差,实在做不出很漂亮很酷炫的界面出来。所以这里我的建议大家可以先在网络上面搜索模板,然后直接在模板上面进行二次开发就可以了。 界面原型设计出来之后就可以开始选择项目开发的工具了,古语所的好,工欲善其事必先利其器嘛。这个我选择的是我最熟悉的Myeclipse+AndroidStuidio+Webstorm+Editplus+ Navicat这些开发工具来进行项目的开发工作。有些人可能不知道这些到底都是什么工具这里我就简单的介绍一下他们的用途:Myeclipse是一款用于Java的企业级开发工具,可以用来开发web类型的项目,AndroidStuidio式一款专门用于Android开发的工具,Webstorm是一款网页的开发工具,Editplus是一个文本编辑器,Navicat是一款数据库管理工具。 工具确定完之后接下来就是具体技术的选择了,这里我用Java语言进行服务器的开发,使用SSH三大框架作为后台服务器基础框架。前台方面我使用的是JavaScript语言进行前台和后台的互动,使用HTML+CSS设计界面原型,使用easyUI框架作为后台Web管理的基础框架。移动端主要采用Android语言进行客户端的开发。 确定完使用的技术和框架之后就要开始设计数据库结构了,这个可以说是重中之重。因为这个设计出错就意味着你的项目从一开始就是不合格的。这个阶段的话,我建议大家多思考思考,主要范式的思想和反范式的思想。 这些前期工作都做完的情况之后,就可以开始项目代码的开发了,不过在开发过程中要注意分层:一般分为数据dao层,业务biz层,控制Controler层这个三个层级,简称MCV。 代码编写完毕后,就是功能逻辑的测试了,也就是最后的测试阶段了。这里大家可以只是纯粹的功能性测试,也可以使用专业的JUnit进行代码级别的测试。 大概的过程就这些,当然还有很多更为复杂的过程,这个我只是说一些最基础的过程。下面我将项目最终运行结果展示给大家看。 1.登录界面: 2.主界面: 3.注册界面: 4.用户信息添加界面: 5.用户信息列表界面: 6.用户信息修改界面: 7.开发工具: 如果大家想要项目源代码+项目讲解PPT+毕业论文+各种技术文档+项目运行视频介绍等等之类的,可以联系我:qiang220316
基于Spark进行社交媒体数据处理和分析:热点话题、用户情感分析与舆论控制
目录摘要前言社交媒体数据处理和分析舆论控制结束语摘要:本文将介绍如何使用Spark对社交媒体数据进行处理和分析,以生成热点话题、用户情感分析等,并讨论一下如何利用这些分析结果来控制舆论方向,文中将提供详细的代码示例,以帮助读者理解和实践这些技术。前言作为技术圈的一员,想必大家对圈内的先进技术都有很大的敏感度,比如在当今社交媒体普及的时代,以及自媒体“横行”的时代,海量的社交媒体数据包含着丰富的信息和洞察力,我们也是这些信息的直接受众,但是作为技术人对这些信息不仅仅是“被动接收”的状态,我们也要通过技术手段去深挖和利用这些数据信息。从技术角度来看,通过对这些数据进行处理和分析,我们可以获得有关用户行为、热点话题、情感倾向等方面的信息。那么本文就来分享一下借助Spark这样的大数据处理框架,我们能够高效地处理大规模的社交媒体数据,并从中提取有价值的分析结果。所以,本文将介绍如何使用Spark对社交媒体数据进行处理和分析,以生成热点话题、用户情感分析等,并讨论一下如何利用这些分析结果来控制舆论方向,文中将提供详细的代码示例,以帮助读者理解和实践这些技术。社交媒体数据处理和分析由于笔者本身也是相关领域的新手,也是以学习者的身份来写和分享这个话题的内容,肯定会有很多瑕疵和不妥之处,还请相关领域的大佬不吝指正,也欢迎各位读者在评论区留言交流。那么接下来就来分享一下关于社交媒体数据处理和分析的关键步骤,具体如下所示。1、数据收集先来处理数据收集,首先我们需要收集社交媒体数据,其实这一步操作可以通过API访问社交媒体平台来实现,比如某博、小某书等,这里举得例子以可以收集的社交媒体数据来讲,以脸书为例,通过这些API,我们可以获得用户发布的帖子、评论、转发等数据。2、数据清洗和预处理通过上一步关于数据收集之后,接下来就是对收集到的数据进行处理,因为收集到的社交媒体数据往往包含噪声、重复项和无效信息,所以数据清洗和预处理是必不可少的步骤,这里包括去除重复数据、过滤垃圾信息、处理缺失值等。以下是一个使用Spark进行数据清洗和预处理的简单示例,具体的示例代码如下所示:代码语言:actionscript复制from pyspark.sql import SparkSession
from pyspark.sql.functions import col
spark = SparkSession.builder.getOrCreate()
# 读取社交媒体数据
data = spark.read.json("social_media_data.json")
# 去除重复项
data = data.dropDuplicates()
# 过滤垃圾信息
data = data.filter(col("text").isNotNull())
# 处理缺失值
data = data.fillna({"sentiment": "unknown"})3、热点话题分析紧接着是对当前频率比较高、热门话题的分析处理,通过处理后的社交媒体数据,我们可以了解当前的热点话题和讨论趋势,这可以通过对用户的帖子和话题标签进行分析来实现。同样,这里也是举一个使用Spark进行热点话题分析的简单示例,具体的示例代码如下所示:代码语言:actionscript复制# 提取话题标签
hashtags = data.select("hashtags")
# 统计话题出现次数
top_topics = hashtags.rdd.flatMap(lambda x: x).countByValue()
# 获取热门话题
top_topics = sorted(top_topics.items(), key=lambda x: x[1], reverse=True)[:10]
# 打印热门话题
for topic, count in top_topics:
print(f"话题:{topic},次数:{count}")4、用户情感分析通过上面对于热点话题的分析处理之外,还可以对参与话题的用户的观点、看法以及感情相关的分析,也就是除了热点话题,我们还可以分析用户对特定话题或事件的情感倾向,这可以通过对用户的帖子进行情感分析来实现。这里也举一个使用Spark进行用户情感分析的简单示例,具体的示例代码如下所示:代码语言:actionscript复制from pyspark.ml import Pipeline
from pyspark.ml.feature import Tokenizer, StopWordsRemover
from pyspark.ml.classification import LogisticRegression
from pyspark.ml.feature import CountVectorizer
# 分词和去除停用词
tokenizer = Tokenizer(inputCol="text", outputCol="words")
stopwords_remover = StopWordsRemover(inputCol="words", outputCol="filtered_words")
# 特征提取
count_vectorizer = CountVectorizer(inputCol="filtered_words", outputCol="features")
# 情感分类模型
lr = LogisticRegression(featuresCol="features", labelCol="sentiment")
# 构建流水线
pipeline = Pipeline(stages=[tokenizer, stopwords_remover, count_vectorizer, lr])
# 拟合模型
model = pipeline.fit(data)
# 进行情感预测
predictions = model.transform(data)
# 打印用户情感倾向
sentiments = predictions.select("text", "sentiment", "prediction")
sentiments.show()舆论控制通过上面关于热门话题的全方位分析之后,我们可以通过这些分析结果有所洞察,尤其是可以根据这些结果把握舆论导向,也就是说社交媒体数据的处理和分析不仅可以为我们提供有关热点话题和用户情感的信息,还可以用于舆论控制。所以通过监控和分析社交媒体上的讨论,我们可以了解公众对特定事件或话题的态度,并针对性地进行宣传或引导。毕竟不是专业的舆情领域的从业者,所以这里以程序员的角度来看舆论控制这个课题。个人觉得舆论控制的具体方法是需要根据情况而异的,但还是有一些常见的技术手段来做舆论控制,具体如下所示:情感引导:通过在社交媒体上发布积极的信息,引导用户的情感倾向,传递正能量。舆论扩散:通过社交媒体的传播特性,将特定信息迅速扩散给更多的用户,以最短的速度来把控舆论导向。虚假信息识别:通过分析社交媒体上的信息,识别和揭示虚假信息,以维护舆论的真实性和公正性,让谣言快速的“戛然而止”。但是除了上面几个常用手段,需要注意的是,舆论控制必须要在遵守道德和法律的规范,不能用于不正当的目的或伤害他人的利益,需要在法律的框架内进行。结束语通过上文关于基于Spark进行社交媒体数据处理和分析,热点话题、用户情感分析与舆论控制的介绍,想必大家对这块的内容都有深入的了解吧,还是那句话,由于笔者在该领域能力的限制,本文内容只做简单的分享和交流,还请各位读者指正。而且本文只是简单的介绍了使用Spark进行社交媒体数据处理和分析的方法,并展示了如何生成热点话题、用户情感分析以及控制舆论方向,这些技术可以帮助我们更好地理解社交媒体数据中的信息和洞察,并在适当的情况下应用于舆论引导和管理。通过深入理解和实践这些技术,作为开发者的我们,可以更好地应对社交媒体时代的挑战,为社会提供更准确、有用的信息,并促进社会的良好发展,最终实现技术改变生活的目的。