【摘 要】在社交网络中常用到图论来分析解决实际问题,本文阐述了图形理论在社交网络应用的理论基础,同时通过案例分析如何基于图论理论建立社交网络模型和进行应用评估。

【关键词】社交网络;图论;模型;应用

一、图论与社交网络

图论〔Graph Theory〕是数学的一个分支。它以图为研究对象。图论中的图是由若干给定的点及连接两点的线所构成的图形,这种图形通常用来描述某些事物之间的某种特定关系,用点代表事物,用连接两点的线表示相应两个事物间具有这种关系。图论起源于著名的哥尼斯堡七桥问题。[1]

社交网络源自网络社交,网络社交的起点是电子邮件。互联网本质上就是计算机之间的联网,早期的E-mail解决了远程的邮件传输的问题,至今它也是互联网上最普及的应用,同时它也是网络社交的起点。BBS则更进了一步,把“群发”和“转发”常态化,理论上实现了向所有人发布信息并讨论话题的功能,随着网络社交的悄悄演进,一个人在网络上的形象更加趋于完整,这时候社交网络出现了。

二、社交网络分析的图形方法

数学和图形技术通常被用来以系统性方式描述社交网络,用以描述和解释社交网络分析的数学科学就是图形理论。相关社交网络分析的的基本概念和测量方法均来自图形理论。图形理论的一个巨大优势是可以应用于计算的数学准则,也因此可以应用于商业问题。在社交网络中每个人可以看做一个点,朋友关系看做连接两点之间的线。这样整个社交网络就形成一个复杂网络图,社交网络本身就是一个复杂的人际关系网络。物以类聚,人以群分,采集社交网络人际关系数据,进行聚类分析,发现群组。

三、社交网络分析

分析社交网络,主要是研究社会实体的关系连结以及这些连结关系的模式、结构和功能。社交网络分析被用于描述和测量行动者之间的关系或通过这些关系流动的各种有形或无形的东西,比如信息、资源等。根据分析的着眼点不同,社交网络分析可以分为两种基本视角:关系取向(relationalapproach)和位置取向(positional approach)。关系取向关注行动者之间的社会性粘着关系,通过社会连结(socialconnectivity)本身――如密度、强度、对称性、规模等――来说明特定的行为和过程。位置取向则关注存在于行动者之间的、且在结构上处于相等地位的社会关系的模式化。它讨论的是两个或两个以上的行动者和第三方之间的关系所折射出来的社会结构,强调用“结构等效”来理解人类行为。

(一)关系距离及中心性分析

1.度(degree)

度指的是社会网络图中邻点的个数。

2.密度(density)

密度指的是图中各个点之间关系的紧密程度,是实际分布图与完备图的差距。在一个群体的结构型态分析中,密度是一项重要变量,因为一个团体可以有紧密团体,也可以有疏离团体,一般来说,关系紧密的团体有效的合作行为较多,信息流通较容易,团体工作绩效也会较好,而关系十分疏远的团体则常有信息不通、情感支持太少、集体满意程度较低等问题。社交网络图(无向图)的密度公式如下:

其中n为图中节点的数目,L为图中线的数目。

3.中心度(centrality)

如果一个行动者与很多其他行动者有直接的关联,该行动者就居于中心地位。因此在无向社会网络图中,一个点的度就是该点的中心度。在有向图中,中心度包括内中心度(in-centrality)和外中心度(out-centrality),三分别对应“入度”和“出度”。A. Bavelas最先对中心度的形式特征进行了开创性研究,验证了如下假设,即行动者越处于网络的中心位置,其影响力越大。

中心度分为三种形式:程度中心性、亲近种新型、中介中心性。

(1)程度中心性常用来衡量谁在团体中是最主要的中心地位。无向图计算公式为:

(2)中介中心性指标

衡量了节点作为媒介的能力。中介中心性高的节点掌握了信息流以及商业机会,进而可以控制两群节点,获得中介利益。社会网络分析中衡量一个人作为桥的程度的指标就是中介中心性。

是节点j到节点k的捷径数,是节点j到节点k的快捷方式上有节点i的快捷方式数,g是网络节点数。

(3)群体中介性公式:

含义是,一个图形中,中介性最高的节点的中介性与其他人中介性的差距。差距越大,群体中介行数值越高,表示此团体分成数个小团体而太依靠某个节点传话,这个节点特别重要。

(二)小团体(子群)分析

派系(subgroup)是社群中的一小群人关系特别紧密,以至于结合成一个次团体。在一个社交网络图中,派系指的是至少包含三个点的最大完备子图。该定义意味着:

派系的成员至少包含三个点;派系是“完备”的,即任何两点之间都是直接相关,都是邻接的;派系是“最大”的,不能再向该派系加入新点,否则将改变“完备”这个性质。

1.成分(component)

如果一个点集的任何两点都可以通过一定的路径相连,这样的点集叫做成分(component)。很显然,派系比成分要严格得多,一个成分中的所有点之间不要求都是邻接的,而派系中的点都必须邻接。

2.n-派系(n-cliques)

对于一个总图来说,如果其中的一个子图满足如下条件,就称之为n-派系:在该子图中,任何两点之间在总图中的最短距离最大不超过n。其形式化定义为:

其中d(i,j)是点i和点j之间的距离。

四、案例分析对象及问题

本文研究主要以人人网为例。人人网为整个中国互联网用户提供服务的SNS社交网站,给不同身份的人提供了一个互动交流平台,提高用户之间的交流效率,通过提供发布日志、保存相册、音乐视频等站内外资源分享等功能,搭建了一个功能丰富高效的用户交流互动平台。对于在人人网中,能否找到一种方法自动地为我的所有好友进行分组。

(一)解决方案思路

人人网是一个复杂的人际关系网络,物以类聚,人以群分。对于解决本案例中的问题,首先是采集社交网络人际关系数据,进行聚类分析,发现群组。

其次是选择开发语言――Python,是一种解释型的,面向对象的、带有动态语义的高级程序设计语言。自从20世纪90年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务和Web编程。具有优雅、明确、简单的特点。能完成系统编程、用户图形接口、Internet脚本、组件集成、数据库编程、快速原型、数值计算与科学计算编程、游戏、图像、人工智能、XML、机器人等功能。

再次是熟练掌握复杂网络处理程序库:

1.Boost Graph Library――准C++标准库

代码结构良好、灵活、高运行效率,没有提供复杂网络分析算法,可帮助 C++ 开发人员将实际工程问题转化成图论问题。

2.QuickGraph――.NET平台下的BGL

BGL在.NET平台下的实现,提供有方向和无方向的.NET图形结构图和算法库。

3.Igraph――C语言写的复杂网络分析库

包括图论各种经典算法以及网络分析算法,它提供了一些非常有效的挖掘功能,提供Python、R语言接口。

workX――全面支持复杂网络分析的Python包包括图论经典算法和复杂网络分析算法,具有文档清晰易读、程序结构组织较好,执行效率比igraph要低很多,便于用户对复杂网络进行创建、操作和学习。利用networkx可以以标准化和非标准化的数据格式存储网络、生成多种随机网络和经典网络、分析网络结构、建立网络模型、设计新的网络算法、进行网络绘制等。

(二)社交网络数据采集

社交网络数据的采集主要是通过运营商开放平台API,用网络爬虫爬取页面。

开放平台(Open Platform)在软件业和网络中,开放平台是指软件系统通过公开其应用程序编程接口(API)或函数(function)来使外部的程序可以增加该软件系统的功能或使用该软件系统的资源,而不需要更改该软件系统的源代码。

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁,自动索引,模拟程序或者蠕虫。网页爬虫所用的网页搜索策略主要有广度优先搜索策略、最佳优先搜索策略、深度优先搜索策略,网页分析算法有网络拓扑的分析算法和网页分析算法等。

(三)简单网络爬虫过程分析

1.模拟用户登录,保存Cookie。所谓Cookie,可以简单认的为是在浏览器端记录包括登录状态在内的各种属性值的容器名称。

图1保存人人网cookie

2.指定抓取入口

图2人人网抓取入口

3.次级页面自动发现

图3次级页面

4.已爬地址处理。通过以上方式可以抓取到网页,但还要从这些页面中解析出需要的文本信息,如,标题、内容、URL链接地址等。之后提出这些信息组成一个document对象,通过Lucene将document对象加入到索引,提供用户搜索用。在实际项目中通常使用HTML解析器(如,HTMLParser)来提取网页内容。

5.信息采集强度控制,主要包括多线程数和停歇时间。

五、结论

本文主要介绍了图论在社交网络上的应用,通过对图论和社交网络分析基础知识的分析,探讨了在社交网络中如何用图论理论来分析解决实际问题。重点采集了“人人网”人际关系数据,进行聚类分析,发现群组,对数据进行可视化,生成了“人人网社交网络图”。探讨了在社交网络中常用到图论来分析解决实际问题。指出社交网络信息是一类重要的分析对象,其中蕴含着丰富的社会网络信息。

参考文献:

[1]Carlos Andro Reis Pinherio[著],漆晨曦等[译].社交网络分析及案例详解[M].人民邮电出版社,2013.01.

[2]王桂平,王珏,任嘉辰.图论算法理论、实现及应用.北京大学出版社,2011.11.

[3]徐俊明.图论及其应用.中国科学技术大学出版社,2010.03.

[4]王树禾.图论.科学出版社,2009.08.

[5]殷剑宏、吴开亚.中国科学技术大学出版社,2004.01.

c语言社交网络,图论在社交网络中的应用研究相关推荐

  1. 什么是图论和图论在数字图像中的应用

    图论是数学中的一个分支,研究由节点和边组成的图的性质和关系.在计算机科学中,图论广泛应用于网络分析.图像分割.社交网络分析.路由算法.搜索算法等领域. 图由一组节点和一组边组成,节点可以表示各种实体, ...

  2. 活动推荐:语音和语言技术在自然交互中的实践沙龙

    智能语音技术已经渗透进家居生活.车载.金融服务等日常生活场景,在很大程度上解放了人们的双手和眼睛,语音交互成为连接人与信息/服务的新入口.根据IDC预测,国内对话式人工智能市场规模将在2022年达到7 ...

  3. R语言str_trim函数去除字符串中头部和尾部的空格

    R语言str_trim函数去除字符串中头部和尾部的空格 目录 R语言str_trim函数去除字符串中头部和尾部的空格 #导入包和库 #仿

  4. R语言ggplot2可视化:ggplot2中使用element_text函数设置轴标签文本粗体字体(bold text,只设置x轴的标签文本使用粗体字体)

    R语言ggplot2可视化:ggplot2中使用element_text函数设置轴标签文本粗体字体(bold text,只设置x轴的标签文本使用粗体字体) 目录

  5. R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型、分类预测器(分类变量)被自动替换为一组虚拟编码变量、summary函数查看检查模型、使用table函数计算混淆矩阵评估分类模型性能

    R语言使用R基础安装中的glm函数构建乳腺癌二分类预测逻辑回归模型(Logistic regression).分类预测器(分类变量)被自动替换为一组虚拟编码变量.summary函数查看检查模型.使用t ...

  6. R语言ggplot2在可视化图像中添加横线并在横线中添加文本、为横线中添加的文本添加文本框、自定义文本框的填充色(background color for a text annotation)

    R语言ggplot2在可视化图像中添加横线并在横线中添加文本.为横线中添加的文本添加文本框.自定义文本框的填充色(background color for a text annotation) 目录

  7. R语言str_extract函数从字符串中抽取匹配模式的字符串

    R语言str_extract函数从字符串中抽取匹配模式的字符串 目录 R语言str_extract函数从字符串中抽取匹配模式的字符串 #导入包和库

  8. R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符、str_sub函数指定起始位置和终止位置替换子字符串

    R语言str_sub函数从字符串中提取或替换子字符串(substring):str_sub函数指定起始位置和终止位置抽取子字符.str_sub函数指定起始位置和终止位置替换子字符串 目录

  9. R语言ggplot2可视化:ggplot2中使用element_text函数设置轴标签文本粗体字体(bold text,只设置y轴的标签文本使用粗体字体)

    R语言ggplot2可视化:ggplot2中使用element_text函数设置轴标签文本粗体字体(bold text,只设置y轴的标签文本使用粗体字体) 目录

  10. R语言ggplot2可视化:jupyter中设置全局图像大小、jupyter中自定义单个ggplot2图像结果的大小

    R语言ggplot2可视化:jupyter中设置全局图像大小.jupyter中自定义单个ggplot2图像结果的大小 目录

最新文章

  1. Office Live for Small Business--开启您创业的大门
  2. wxWidgets:wxColour类用法
  3. 测试发送消息和接受消息
  4. nginx(三)反向代理和负载均衡
  5. C/C++ 指针小结——指针的概念和如何使用指针
  6. GBK 汉字编码转换
  7. java算法面试题及答案pdf,中信银行Java笔试题库
  8. Python打包exe,以及解决闪退
  9. IDEA中添加翻译插件
  10. word2013不能执行撤销操作,ctrl+Z键也无效的解决方法
  11. 鸿蒙和米家啥区别,魅族家居接入鸿蒙!
  12. 组织分解结构(Organizational Breakdown Structure OBS)
  13. hdu1847-Good Luck in CET-4 Everybody! (博弈论 SG函数 找规律)
  14. 云效搭建流水线实现自动化构建部署
  15. 从同花顺获取涨停数据,视图化分析优质板,方便投资。
  16. 【算法讲20:Dsu on Tree】树上数颜色 | Lomsat gelral
  17. apmserver导入MySQL_APMServ MySQL 错误
  18. python爬取凤凰新闻网_python凤凰新闻数据分析(一)python爬虫数据爬取
  19. 银行使用计算机和网络实现个人存款,观察值与算术平均数的差数称为离均差,其总和为( )。...
  20. MSL、TTL及RTT的区别

热门文章

  1. 软件测试用例设计规范
  2. 深入浅出学习CAN系列-了解CAPL编程语言
  3. 《人工智能:一种现代的方法》读书笔记之 智能Agent
  4. 全国大学生恩智浦杯智能汽车竞赛
  5. 完美解决 vcpkg 下载速度慢
  6. 【C语言】学生打卡系统(完整代码)
  7. QT 5.9.0下载安装及配置教程
  8. PCB文件导入HFSS中仿真
  9. Cadence导入AD的pcb文件中元件的封装
  10. python编写arcgis脚本教程_零基础学习ArcGIS Python脚本开发视频课程