精华内容
下载资源
问答
  • 社交网络

    2019-04-08 21:07:05
    社交网络 简介 在线社交网络已经改变了人们与互联网以及人与人之间的互动方式。它们极大地减少了维持本应逐渐消失的关系所需要的努力,并且为了解人类行为和过去从未为人所知的关系提供了窗口。仅Facebook,在当时或...

    社交网络

    简介

    在线社交网络已经改变了人们与互联网以及人与人之间的互动方式。它们极大地减少了维持本应逐渐消失的关系所需要的努力,并且为了解人类行为和过去从未为人所知的关系提供了窗口。仅Facebook,在当时或写作时,每月就有大约20亿活跃用户。

    Instagram、Twitter、Pinterest和谷歌+平均在4亿左右。世界上有一半以上的互联网用户正在使用某种类型的社交网络。在线社交网络的研究建立在对网络社区的研究的坚实基础之上,这些研究在互联网的早期解决了用户的互动问题,并一直持续到今天。

    从本质上说,社交网络是一种让人们通过在线媒体相互联系的技术。它有一种典型的机制,人们通过加好友、追随或类似的方式明确地创建社会关系。在早期的在线社交网络中,建立这些联系通常是核心目的,但现代网络通常将人们与他们的社交联系所发布的帖子和更新联系起来。在线社交网络也可以通过隐性互动来构建,比如讨论组中的帖子和回复,或者其他论坛中的提及。

    这种社交互动是通过基于计算机的技术媒介进行的,因此对在线社交网络的许多研究都属于人机交互(HCI)领域。因此,有一组广泛而多样的主题需要理解。在这一章中,我们将它们分为几个大类。社交网络提供的数据让研究人员通过网络分享的内容,更广泛地了解人类之间的互动和世界;使用社交网站这一现象本身就是用来研究的。社交网络平台存在设计问题,可视化可以帮助我们分析其中的数据。人们所做的可以让研究人员构建系统,改善各种平台上的交互。

    威力人机交互手册

    了解人类

    获取数十亿人的大量数据在人类历史上是前所未有的。因此,社交媒体作为一种技术,在理解人们以及他们的行为和相互之间的互动方面一直在改变。尽管社会科学家和心理学家在这一领域的工作越来越多,但许多人机交互研究人员已经迈出了将社会科学见解与社交网络数据相结合的第一步,以证明我们对人类的理解可以如何提高。

    HCI这一领域的关键实践之一是利用在线社交网络出现之前在社会科学中发展起来的见解和理论。同质性(即人们倾向于与与自己相似的人成为朋友)、社会资本、纽带强度和信任等概念都被映射到一个可以在网络环境中使用的上下文中。这遵循了HCI内部将现有理论引入HCI空间的悠久传统,追溯到将Fitts定律映射到图形用户界面的早期。在这一领域的人机交互研究通常可以分为两大类:一是关注人际关系和互动的研究,二是关注个人本身的研究。

    相互作用关系

    社会资本是一个处理社会关系产生的利益的概念。它包括诸如帮助、信任和支持之类的东西,人们通过帮助他人或共同利益来“赚取”这些资本。它可以被认为是一种权力,人们必须要求或接受他人的社会支持,通过其他良好的行为赢得他们的信任和支持。最终,它根植于人与人之间的社会关系中。

    这是在线社交网络中最早转变和研究的概念之一。早期的研究比较了青少年和成年人使用早期社交网站MySpace的方式,发现青少年有更多的朋友,而成年人有更强大的朋友。这被扩展到一项关于大学生使用Facebook以及这些关系对社会资本重要性的研究。研究甚至表明,基于在线社交网络的关系可以建立社会资本,尤其是在自尊心较低的年轻人中,否则他们可能难以建立重要的关系。

    联系强度是社交网络空间中另一个备受关注的社会学概念。由Granovetter(1973)推广开来的联系强度描述了两个人之间的亲密程度,通常用亲密度、为对方做的好事、在一起的时间和情感强度的组合来衡量。Gilbert和Karahalios(2009)通过分析两个人在Facebook上的个人资料和互动可以预测他们之间的联系强度。

    在线社交网络中的信任关系受到了HCI研究者的广泛关注。推断两个有联系的个体之间信任的模型,特别是那些没有直接联系的个体之间的信任模型(例如,vestani, Massa, & Tiella, 2005;Golbeck, 2005;Ziegler & Lausen, 2005)得到了广泛的关注。本研究通过创建算法将HCI与人工智能连接起来,这些算法使用这些通过用户研究和分析理解的人类数据,构建自动检测信任迹象的算法。

    个体属性

    在使用人们在社交网站上分享的任何数据之前,有一个问题是他们分享的数据是否真实地反映了他们自己。毕竟,如果人们在撒谎,从这些网络中可能没有多少有意义的洞见。然而,研究表明,用户在他们的个人资料中本质上呈现了真实的自我。考虑到这一点,可以用人们选择共享的数据做很多事情。

    在线社交网络已经成为一个地方,通过执行超越他们明确分享的分析,可以更深入地了解个人用户。研究人员利用来自数千名用户的社交媒体资料的数据,建立模型,允许对任何给定的个人进行属性推断。特征是多样的,包括性取向、种族与宗教、政治偏好、人格特质、个人价值观、抑郁、PTSD等心理健康问题,即使一个帐户是垃圾邮件。这些算法可以在许多平台上工作——twitter、Facebook、Instagram、Pinterest等等—并使用许多不同类型的数据,包括个人资料照片、Facebook点赞、个人资料数据、用户写的文本等等。

    从科学的角度来看,这项研究令人兴奋,在一些个性化的界面应用程序中也很有用(下文将进一步讨论),但它也引起了人们对隐私的关注。如果有关个人和潜在敏感信息能够被自动检测到,即使用户明确选择将这些信息保密,许多个人隐私界限也会受到侵蚀。当结果推断可以被出售、用于目标广告,甚至用于招聘决策时,这就更加麻烦了。如何处理这些问题是一个备受争议的问题。

    通过社交网络信号了解世界

    事实上,世界上很多地方都是网络在线的,分享想法和评论日常生活意味着,把这些贴子合在一起,就能描绘出这个世界(或它的特定部分)在谈论什么,以及他们对此的感受。这激发了利用社交媒体了解世界的研究。

    预测选举结果一直是人们特别关注的焦点,欧洲和北美的研究都对其进行了分析。成功是喜忧参半的。虽然许多项目已经能够建立模型,但它们并不总是能够转移到其他选举或其他环境中,这方面还有许多工作要做。类似的技术也被用于其他未来的预测,包括预测Twitter帖子的票房收入和股市。

    社交网络,尤其是Twitter,已经被研究为突发新闻和热门话题的来源。HCI的研究集中在追踪个人事件是如何传播的,比如奥萨马·本·拉登的死亡。虽然大众媒体在社交网络平台上很受欢迎,但名人和其他有影响力的人物经常帮助传播新闻。这一点在研究波士顿马拉松爆炸案和其他恐怖主义事件的工作中得到了呼应,发现官方账户和媒体最可能获得关注,但最初的报道往往来自各种来源。

    研究自身的现象

    如何使用社交网络平台已经成为一个值得研究的话题。早期的工作只是简单地描述了这些地点和它们的动态,因为这种现象没有被很好地理解。然后,人机互动研究继续研究不同群体如何使用社交媒体平台。例如,大学教师、美国国会、学生、图书馆和进食障碍患者。

    人机交互研究人员也在研究人们如何使用各种平台。在Instagram上,研究着眼于照片内容。在Pinterest上,人们是如何管理照片的 以及谁在使用它。在Snapchat上,这种互动是短暂的。网站之间也有比较,比如Snapchat和Facebook之间的互动如何不同。

    了解人们如何使用技术确实是许多HCI研究的核心问题,随着社交网络技术的不断发展和演变,在这些主题上肯定会有更多的工作要做。

    信息可视化挑战

    社交媒体为信息可视化带来了许多独特的挑战(参见图34.1)。其中一些来自数据类型,包括社交图表,还有一些来自大小。作为一个有趣的大数据的主要来源,社交网站数据的可视化和分析可能会因为其规模而具有挑战性。
    在这里插入图片描述
    一个社交网络可视图的示例(来自Crnovrsanin, Muelder, Faris, Felmlee,Ma (2014))

    可视化网络本身的结构是一个挑战。图形可视化可以显示有用的洞见,以几千个节点和几万条低边作为上限。虽然这听起来可能很大,但在线社交网络的规模要比这大很多个数量级。为此目的设计了许多工具,其中最突出的两个是Gephi和NodeXL。人机交互研究人员还引入了分层组织图数据的技术,以简化大型网络,包括边缘聚合和节点层次结构。

    社交网络平台上共享的数据也有助于进行可视化分析。在Instagram上,日常节奏出现在照片的视觉分析中。从社交媒体文本中提取的词云允许对用户的共同话题进行可视化检查。由于如此多的社交媒体数据包含地理空间信息,将社交媒体和GIS数据结合成可视化也面临着挑战。

    界面中的社交网络

    在线社交网络也对HCI的界面产生了影响,尤其是通过使用数据来驱动个性化的界面元素。定向广告和内容个性化是利用社交网络数据的众所周知的功能。

    社会推荐系统是利用社会网络信息的最突出的HCI研究领域之一。推荐系统通常根据用户已知的偏好个性化内容。这可以基于项目相似性(即找到与用户喜欢的相似的项目)或用户相似性(即找到与用户喜欢的相似的人,并推荐他们喜欢的其他东西)。社交推荐人利用了这样一个事实,即人们往往与与自己有相同品味的人成为朋友,并利用社交关系找到用户可能感兴趣的商品。

    基于社交的推荐往往会增加互动。这些推荐在基于品味的领域(如音乐或电影)特别有用,当用户的品味远远超出标准时,它们通常可以提高推荐性能。

    传统的推荐系统倾向于推荐用户可能想要的书籍、电影、音乐和其他产品,而朋友推荐系统则推荐用户可能想要与之建立社交联系的人。现在,这些都是大多数在线社交网站中普遍存在的界面元素。这些可能依赖于与更经典的推荐系统类似的算法,但即使在在线社交网络的早期,它们也经常利用图结构来获得洞见。更新的朋友推荐方法正在利用移动设备和其他生活方式跟踪器提供的丰富数据源,为社交环境中的用户寻找潜在联系人。

    总结

    在线社交网络对人们与科技互动的方式产生了最为深远的影响。他们使数亿人在互联网上进行创作和互动成为可能。通过它们的使用,研究人员现在有了理解人和世界的新方法,有了自己感兴趣的一组广泛的技术,有了一组不断增长的数据,可以提供接口特性和个性化。

    然而,随着社交网络成为大多数人生活的重要组成部分,未来还有许多新的挑战,包括HCI社区将面临的挑战。隐私问题已经很重要,而且只会变得越来越重要。对社交网络数据的分析和使用可能是有用的,但也可能以人们永远不会赞同或同意的方式使用。目前,用户控制个人数据的能力有限,因此设计更好的界面、工具和技术来理解在线共享的隐私含义非常重要。

    网络骚扰也是一个已经渗透到大多数社交网络空间的问题。需要多种技术来解决这个问题,这样这些在线空间才能保持安全和有效的互动。

    除了这些迫在眉睫的问题,社交网络对于分析和应用现有理论来理解用户行为仍然是开放的。人类行为、思维和互动的全部范围现在每天都被记录下来,并以远远超出我们处理能力的数量分享。人机交互研究人员拥有丰富的数据,他们只需要考虑研究哪些方面,以及他们将使用哪些工具,就能继续产生关于人们如何与之互动以及如何通过这项技术进行互动的有趣见解。

    (作者有话说:这是一门专业课的翻译作业,只是一篇译文,原文在这里就不发出来了,主要了解一下社交网络的起源和发展,以及目前面临的问题,之后会发出对这篇文章的分析和看法。)

    展开全文
  • 社交网络-源码

    2021-02-26 11:01:32
    社交网络
  • 社交网络 我的计划社交网络
  • 社交:社交网络-源码

    2021-02-08 02:56:28
    社交:社交网络
  • 社交网络-MERN:MERN的社交网络
  • 社交网络旅行版:旅行者的社交网络
  • 社交:一个社交网络项目
  • 社交网络页面-源码

    2021-02-17 02:46:36
    社交网络页面
  • 复杂网络 社交网络eMarketer points to a pair of studies today that indicate that social networking isn’t quite as mainstream as we may often assume. A study by research firm Synovate that surveyed 13,...

    复杂网络 社交网络

    eMarketer points to a pair of studies today that indicate that social networking isn’t quite as mainstream as we may often assume. A study by research firm Synovate that surveyed 13,000 consumers in Brazil, Bulgaria, Canada, France, Germany, India, Indonesia, Japan, the Netherlands, Poland, Russia, Serbia, Slovakia, South Africa, Taiwan, the United Arab Emirates (UAE) and the US, found that 58% do not even know what social networking is. Further, only 26% are actually members of social networks.

    eMarketer指出,今天有两项研究表明,社交网络并不像我们通常认为的那样主流。 研究公司Synovate进行的一项研究对巴西,保加利亚,加拿大,法国,德国,印度,印度尼西亚,日本,荷兰,波兰,俄罗斯,塞尔维亚,斯洛伐克,南非,台湾,阿拉伯联合酋长国(UAE)的13,000名消费者进行了调查和美国发现58%的人甚至不知道什么是社交网络。 此外,实际上只有26%是社交网络的成员。

    In a separate study by Universal McCann in April, eMarketer points out that in none of the countries surveyed did a majority of the population use social networks — and in most places under 25% did. Though eMarketer predicts that nearly half of US Internet users will be on social networks by the end of this year — which would indicate some growth in the user base — that actually goes against what the Sybase study found.

    在4月环球麦肯环球公司(Universal McCann)进行的另一项研究中,eMarketer指出,在接受调查的国家中,没有一个大多数的人口使用社交网络-在大多数地方,不到25%的人口使用社交网络。 尽管eMarketer预测,到今年年底,将近一半的美国Internet用户将使用社交网络(这表明用户数量有所增长),这实际上与Sybase研究发现的情况背道而驰。

    36% of social network users that Sybase talked to said that they were losing interest in social networking, with the most social network fatigue showing up in web savvy nations like Japan, Canada, and the US.

    Sybase与之交谈的社交网络用户中有36%表示,他们对社交网络失去了兴趣,在日本,加拿大和美国等精通网络的国家中,社交网络最容易疲劳。

    Social networking blog Mashable points out that the survey only looked at users aged 18-65, which means that it ignored the teenagers who make up so much of the social networking population. They also note that with 58% of the world having never heard of social networking, there is a potentially untapped market for it.

    社交网络博客Mashable指出 ,该调查仅针对18-65岁的用户,这意味着该调查忽略了构成社交网络人口过多的青少年。 他们还指出,由于世界上58%的人从未听说过社交网络,因此有一个潜在的尚未开发的市场。

    But as we reported last month, even kids are starting to lose interest in social networking. A study of British youngsters between the ages of 13 and 17 by Logicalis in August found that 46% feel that social networking has become less important to them, and that they are using online social networks less frequently.

    但是正如我们上个月报道的那样,甚至孩子们也开始对社交网络失去兴趣。 Logicalis在8月份对13至17岁的英国年轻人进行的一项研究发现,有46%的人认为社交网络对他们的重要性下降,他们使用在线社交网络的频率降低了。

    We noted that in the British market, at least, 13-17 year olds make up a small subset of the total social networking population and speculated that once they reach the much larger 18-25 year old group (those in post secondary schools), social networking might become more attractive. The Sybase study indicates that those users too are souring on social networking though.

    我们注意到,在英国市场上,至少13-17岁的年轻人占社交网络总人口的一小部分,并推测一旦他们到达了更大的18-25岁的人群(中学后的年龄段),社交网络可能会变得更具吸引力。 Sybase的研究表明,这些用户也在社交网络上感到不适。

    Is social networking a fad? Or will social networks, like Charlene Li predicts become “like air” — so ubiquitous that everyone online uses them without even actually realizing it? Let us know your thoughts in the comments.

    社交网络是一种时尚吗? 还是像夏琳·李(Charlene Li)预测的那样,社交网络会变得“像空气一样” —如此普遍,以至每个在线用户都没有真正意识到它们的使用? 在评论中让我们知道您的想法。

    翻译自: https://www.sitepoint.com/social-networking-not-quite-mainstream/

    复杂网络 社交网络

    展开全文
  • 社交网络分析

    2021-04-14 13:56:14
    社区挖掘 社交网络社区发现: 链接: 社交网络标签传播参考.

    社区挖掘

    社交网络社区发现
    链接: 社交网络标签传播参考.

    展开全文
  • 通过整合社交网络和内容发现社交媒体专家
  • 在线社交网络是伴随着互联网技术发展产生的,它属于众多复杂网络中的一种。近年来,对于在线社交网络的研究不断深入,研究方向可以细分为网络拓扑特征的分析、虚拟社区划分算法的研究、传播动力学研究、网络采样与...
  • python社交网络

    2020-12-21 17:37:30
    社交网络图 nx.circular_layout()指定网络图节点的布局方式 nx.draw_networkx_nodes()绘制网络图的节点 nx.draw_networkx_edges()绘制网络的边 nx.draw_networkx_labels()为节点添加标签 import networkx as nx ...
  • 社交网络用语识别

    2017-11-14 22:39:09
    "社交网络上一些网络用语,如下,会出现识别错误。如:D是笑脸的意思,不应该分开。" "社交网络上一些网络用语,如下,会出现识别错误。如:D是笑脸的意思,不应该分开。" "社交网络上一些网络用语,如下,会出现...
  • 大数据社交网络分析

    2018-03-17 19:13:44
    大数据 社交网络社交网络分析   基于社交关系、结构进行挖掘 例如:社区检测、链接预测、影响力分析等  社交内容挖掘   基于文本等内容数据进行挖掘 例如:摘要、关键词、情感分析等   上述二者可结合...
  • 基于社交网络分析的安全的社交多媒体内容分发
  • 社交网络 分析

    2019-01-26 12:11:57
    社交网络 分析
                         

    前言

    最近国产的一部电视剧《人民的名义》突然的就火了,随之而来的是各大Coder们的社交网络分析。针对剧本中出现的人名,事件,词频等以图形化的界面展示,清晰化的显示出了剧本的特色。

    而对于CSDN的关注人和粉丝的图形化展示,也恰好符合这一个主题(暂且这么认为吧)。本来想做的是公共粉丝(比如哪个人既关注了A,又关注了B),但是在博客中由于权限的问题,获取不到相关的数据,于是只能做下关注人和粉丝的图形化展示了。

    先来看下最终效果图。
    “社交网络分析效果图”

    环境

    从上面的效果图上也可以看出,命令行前面有一个(env)的前缀,这是使用了virtualenv的缘故。

    virtualenv

    使用virtualenv可以很好的隔绝本地的Python环境,而且也不是很占用磁盘空间,对每一个项目使用一个单独的环境还能大大减少出现意外的频率,更好的维护代码,排查错误。

    安装virtualenv也非常的简单。

    pip install virtualenv
    • 1

    安装好之后,就可以在任意的目录下,使用命令行执行下面的命令。比如我在桌面新建了一个名为nerwork的文件夹,我就可以进入到这个文件夹内部,打开命令行,执行:

    virtualenv env
    • 1

    这样network文件夹下就会多出一个env的目录,里面的环境就是根据我们本地的Python环境而新建的一个隔离区。

    这样还不算完成,最后一步就是激活这个虚拟环境。执行:

    env\Scripts\activate.bat
    • 1

    如果前缀变成了(env)XXX,那就说明虚拟环境激活成功了,我们只需要在这个虚拟环境中进行开发就可以了。

    第三方库

    这里需要用到一些第三方的库,通过pip freeze命令,可以详细的查看每一个库的名称以及精确的版本号。

    (env) C:\Users\biao\Desktop\network\code\relationanalysis>pip freezeappdirs==1.4.3beautifulsoup4==4.6.0csdnbackup==0.0.1cycler==0.10.0decorator==4.0.11matplotlib==2.0.2networkx==1.11numpy==1.12.1packaging==16.8pyparsing==2.2.0python-dateutil==2.6.0pytz==2017.2requests==2.14.2six==1.10.0
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    但是我们需要安装的却不多,因为很多库是与之关联的,pip命令会自动把依赖的包帮我们安装。我们需要安装的包如下:

    • networkx: pip install networkx
    • csdnbackuo: 这个包是我之前写过的一个关于CSDN博客备份的工具库,源码上传到了GitHub。而且为了方便使用,我把它做成了一个.whl包,下面是下载地址:
      https://github.com/guoruibiao/csdn-blog-backup-tool
      下载里面适合自己Python版本的whl文件,然后执行
      pip install csdnbackup-0.0.1-py2.py3-none-any.whl 即可。

    这样,依赖的库就基本上安装成功了。

    模块化

    完成一个任务,首先并不是上来就写代码。而是先搞清楚需求。比如这里,要做的是关注人和粉丝的图形化展示。那么仔细想想,不难发现可以细化这个大任务。

    • 获取粉丝信息
    • 获取关注人信息
    • 关于图形化展示的部分

    这样一来,我们只需要每次完成一个小任务,最终通过集成测试就能完成任务了。下面针对每一个小任务进行实现。

    爬虫模块

    这里的爬虫模块不是必须要用我那个库,你也可以自己写。但是重复造轮子是一件很枯燥的事,人生苦短,咱还是用轮子吧

    关于模拟登陆

    from csdnbackup.login import Login
    • 1

    然后使用下面的代码即可实现模拟登陆。

    # coding: utf8# @Author: 郭 璞# @File: logintest.py                                                                 # @Time: 2017/5/18                                   # @Contact: 1064319632@qq.com# @blog: http://blog.csdn.net/marksinoberg# @Description: csdnbackup模拟登陆测试from csdnbackup.login import Loginimport getpass#username = input('请输入您的账号:')password = getpass.getpass(prompt='请输入您的密码:')loginer = Login(username=username, password=password)session = loginer.login()headers = loginer.headersheaders['Host'] = 'blog.csdn.net'response = session.get('http://blog.csdn.net/marksinoberg', headers=headers)print(response.status_code)print(response.text)print("网页总长度:", len(response.text))
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    没有图不足以证实此轮子的好用。

    模拟登陆结果验证

    爬取数据

    巧妇难为无米之炊,下面来弄点出来。

    # coding: utf8# @Author: 郭 璞# @File: spider.py                                                                 # @Time: 2017/5/18                                   # @Contact: 1064319632@qq.com# @blog: http://blog.csdn.net/marksinoberg# @Description: 爬虫,爬取博主的粉丝信息from csdnbackup.login import Loginfrom bs4 import BeautifulSoupimport mathimport numpy as npclass Fans(object):    def __init__(self, domain, password):        self.domain = domain        self.loginer = Login(username=domain, password=password)        self.session = self.loginer.login()        # set the headers        self.headers = self.loginer.headers        self.headers['Referer'] = 'http://blog.csdn.net/{}'.format(self.domain)        self.headers['Host'] = 'my.csdn.net'    def get_fans_number(self):        url = 'http://my.csdn.net/{}'.format(self.domain)        response = self.session.get(url=url, headers=self.headers)        # print(response.text)        if response.status_code == 200:            soup = BeautifulSoup(response.text, 'html.parser')            return soup.find('a', {'href': '/my/fans'}).get_text()        else:            return 0    def get_fans(self):        fans = []        url = 'http://my.csdn.net/{}'.format(self.domain)        fans_number = self.get_fans_number()        pages = math.ceil(int(fans_number)/20)        # pages+1        for index in range(1, pages):            url = 'http://my.csdn.net/my/fans/{}'.format(index)            response = self.session.get(url=url, headers=self.headers)            if response.status_code == 200:                soup = BeautifulSoup(response.text, 'html.parser')                user_names = soup.find_all('a', {'class': 'user_name'})                fans.extend([str(username.attrs['href']).lstrip('/') for username in user_names])            else:                raise Exception("获取第{}页数据失效".format(index))        return fans    def get_follow_number(self):        url = 'http://my.csdn.net/{}'.format(self.domain)        response = self.session.get(url=url, headers=self.headers)        # print(response.text)        if response.status_code == 200:            soup = BeautifulSoup(response.text, 'html.parser')            return soup.find('a', {'href': '/my/follow'}).get_text()        else:            return 0    def get_follow(self):        follows = []        url = 'http://my.csdn.net/{}'.format(self.domain)        follow_number = self.get_follow_number()        pages = math.ceil(int(follow_number) / 20)        # pages+1        for index in range(1, pages):            url = 'http://my.csdn.net/my/follow/{}'.format(index)            response = self.session.get(url=url, headers=self.headers)            if response.status_code == 200:                soup = BeautifulSoup(response.text, 'html.parser')                user_names = soup.find_all('a', {'class': 'user_name'})                follows.extend([str(username.attrs['href']).lstrip('/') for username in user_names])            else:                raise Exception("获取第{}页数据失效".format(index))        return followsclass ListUtils(object):    """    利用numpy 进行数据的筛选    """    def __init__(self):        pass    @staticmethod    def comminInList(self, x=[], y=[]):        return np.intersect1d(ar1=x, ar2=y, assume_unique=True)if __name__ == '__main__':    fans = Fans(domain='你的用户名', password='你的密码')    # fans1 = fans.get_fans(username='marksinoberg')    # result = ListUtils.comminInList(fans1, fans2)    # print(result)    follows = fans.get_follow()    print(follows)
    • 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
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113

    对照一下运行结果,关注人信息获取如下。
    关注人信息获取

    图形化

    图形化需要借助matplotlib来画图,而载体就是networkx,所以我们需要对此进行安装。在此不再过多叙述。

    然后就是对于networkx的使用了。

    步骤

    一般有如下几个步骤:

    • 声明graph
    • 填充节点和边
    • 画出图形

    中文节点问题

    默认的matplotlib 对于中文支持的不太友好。为了解决这一个问题,可以通过如下步骤实现。

    • 到matplotlib的安装目录下找到字体文件夹, 比如我的是
      C:\Users\biao\Desktop\network\env\Lib\site-packages\matplotlib\mpl-data\fonts\ttf

    • 然后从本地的字体库(比如C:\Windows\Fonts\XX.ttf)中拷贝一份,重命名为DejaVuSans.ttf,放置到刚才的matplotlib字体文件夹下即可。为什么要这么做?答案就是matplotlib默认使用DejaVuSans.ttf

    实战

    下面实战一下CSDN的关注人和粉丝跟自己的关系演示。因为粉丝人数过多的话,会导致生成的图片重叠度较大,所以这里选取前20个关注人和前20个粉丝。

    import networkx as nximport matplotlib.pyplot as pltimport spiderfans = spider.Fans(domain='你的用户名', password='你的密码')fans_names = fans.get_fans()[:20]follow_names = fans.get_follow()[:20]nodes = fans_namesrelations1 = [('我', username) for username in fans_names]relations2 = [(username, '我') for username in follow_names]colors = ['red', 'orange', 'yellow', 'green', 'blue', 'purple']graph = nx.DiGraph()graph.add_node('我')graph.add_nodes_from(fans_names)graph.add_edges_from(relations1)graph.add_edges_from(relations2)nx.draw(graph, with_labels=True,  hold=True, node_color=colors)plt.title('CSDN 博客关注与粉丝图形化显示')plt.axis('off')plt.show()
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    生成的图片如下:
    “模拟社交网络分析”

    总结

    对于networkx,这里讲的并不是很多,也可以说就没怎么讲。这是因为官方文档的却是够详细了。而且越往深处看,越觉惊喜。基本上对于社交网络的分析,它是一个很不错的选择了。

    还有就是关于轮子,平时多写一些可靠的轮子,说不一定哪天就用到了。

               

    再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

    展开全文
  • 社交网络算法

    2019-09-28 06:52:53
    社交网络算法 1、应用场景 在社交网络中社区圈子的识别 基于好友关系为用户推荐商品或内容 社交网络中人物影响力的计算 信息在社交网络上的传播模型 虚假信息和机器人账号的识别 基于社交网络信息对股市的...
  • 实践社交网络分析

    2018-11-15 20:36:21
    介绍了社交网络分析中的理论,并给出了许多具体的案例
  • 开发人员社交网络:这是一个MERN堆栈项目,希望为开发人员建立社交网络
  • 社交网络中,Spammer未经接收者允许,大量地发送对接收者无用的广告信息,严重地威胁正常用户的信息安全与社交网站的信用体系。针对现有社交网络Spammer检测方法的提取浅层特征与计算复杂度高的问题,提出了一种...
  • 社交网络论文集

    2017-02-23 13:23:37
    2016 中国学者社交网络论文集
  • 基于卷积神经网络的社交网络用户兴趣推断

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 19,046
精华内容 7,618
关键字:

社交网络