沃尔夫拉姆 计算符合知识

用Wolfram语言分析殖民地波士顿革命者的社会网络

革命性社交网络引领形象

随着7月4日的临近,许多美国人将庆祝自美利坚合众国创始人签署《独立宣言》以来的241年,这是他们自己的颠覆性、革命性创业公司。独立前,殖民者会庆祝国王的诞生。然而,1775年4月独立战争爆发后,一些殖民者开始为乔治三世国王举行模拟葬礼。此外,篝火、庆祝用的大炮、步枪和游行以及公众阅读《独立宣言》都很常见。还有朗姆酒。

今天,我们经常用烧烤、烟火和其他庆祝活动来庆祝。作为一个有抱负的数据书呆子和社会学家,我想我会使用Wolfram语言使用一些基本的自然语言处理来探索《独立宣言》。

使用元数据,我还将探索殖民者的政治网络,特别关注保罗·里维尔使用内置的Wolfram语言功能和网络科学来揭示殖民时期波士顿及其主要参与者在签署独立宣言之前的一些隐藏真相。

独立宣言和Wolfram数据仓库

这个Wolfram数据存储库最近发布了,拥有越来越多有趣的资源,可以轻松计算结果。

Wolfram数据存储库

碰巧,Wolfram数据存储库包含独立宣言。让我们使用文字云首先从数据存储库中获取。

doi=ResourceData[“独立宣言”];

文字云[删除停止语@doi]

有趣,但这在主题上不是很爱国,所以让我们使用颜色函数然后使用删除关键词删除文档的签名者。

WordCloud[DeleteStopwords@StringDelete[ToLowerCase[doi],{“约翰”,“托马斯”,“乔治”,“塞缪尔”,“弗朗西斯”,“刘易斯”,“理查德”,“詹姆斯”,“莫里斯”,”本杰明“,”亚当斯“,”威廉“,”小杰“,”李“,”亚伯拉罕“}],FontFamily->“扎普菲诺”,ColorFunction->“SolarColors”]

正如我们所看到的,沃尔夫拉姆语删除了签名者的姓名,并使单词变大,这是独立宣言中单词频率的函数。最突出的是“法律”和“人民”这两个词出现得最频繁。这并不奇怪,但让我们看看这些单词的历史用法单词频率数据功能和日期列表图用于可视化。保持爱国主题,让我们也使用打印样式使情节变成红色和蓝色。

DateListPlot[WordFrequencyData[{“laws”,“people”},“TimeSeries”],PlotStyle->{红色,蓝色},FrameTicks->{True,False}]

令人难以置信的有趣的是,我们可以在1776年左右看到这两个单词的使用量激增。随着时间的推移,这两个词的用法之间的差异也让我感到有趣。

殖民地波士顿的社交网络

根据历史文献,殖民时期的波士顿在18世纪末是一个迷人的地方。David Hackett Fischer的专著保罗·里维尔的骑行描绘了推动革命运动的政治派别的全貌。特别令人感兴趣的是共济会宿舍和核心小组,他们在政治上活跃,是独立战争的核心。

我们这些在美国长大的人可能会记得我们第一堂美国历史课上的保罗·里维尔。他骑着马穿过现在的大波士顿地区,向殖民地民兵发出警告,警告即将到来的英国军队,这是他著名的“午夜骑行”,尤其是在一首诗中被亨利·沃兹沃斯·朗费罗1860年。

直到费舍尔探索保罗·里维尔的政治协会和核心小组成员身份之前,历史学家认为殖民叛乱运动是由塞缪尔·亚当斯许多人认为里维尔只是一个信使。他确实是这样,但通过这种信息传递和其他活动,他成为了将可能没有沟通的政治团体联合在一起的关键,我将通过网络分析来证明这一点。

碰巧的是,去年这个时候我在沃尔夫拉姆暑期学校目前,宾利大学正在进行这项研究。我在那里的一个亮点是由Charlie Brummitt主持的一场关于社交网络分析的讲座,该讲座使用元数据分析波士顿的殖民叛军。

杜克大学社会学家基兰·希利(Kieran Healy)在博客上发表了一篇精彩的文章,探讨了这个问题,标题是“使用元数据查找Paul Revere“这篇演讲的来源。我将用Wolfram语言重新创建他的一些分析,并用更高级的可视化技术进一步深入。

“记住女士们”

然而,首先,作为一名社会学家,我的研究往往涉及不平等、权力和边缘化群体。如果我没有想到阿比盖尔·亚当斯与丈夫的通信约翰·亚当斯1776年3月31日,她指示他在大陆会议上“记住女士”。我做了一个文字云这里的信。

亚当斯词云

我们使用的数据仅涉及男性和男性社会和政治组织的成员数据。值得注意的是,在革命时期以及其后相当长的一段时间里,妇女在法律上被禁止参与大多数政治事务。在一些州,女性可以投票,但在1777年至1787年间,除新泽西州外,所有州都剥夺了这些权利。直到1920年8月18日,第19修正案才获得通过,明确保障了女性的投票权。

为此,根据英国习惯法,女性被视为女性隐秘,意味着已婚妇女的权利被她们的丈夫所吸收。不仅不允许妇女投票,秘密法律规定丈夫和妻子是一个人,前者拥有唯一的政治决策权,以及买卖财产和赚取工资的能力。

美国独立战争后,美国摆脱了乔治三世国王的暴政;然而,在法律和文化上,女性仍然屈从于男性。例如,汉娜·格里菲茨,一位以其关于自由之女1785年,《女爱国者》在一篇日记中表达了许多殖民地女性的共同情感:

光荣的第四次胜利出现了
一天一年,
悲伤灾难的总和,
在那里我们看到了巨大的收获
带着他们自夸的自由,
只是大师的更迭。

毫无疑问,如果没有女性的家务劳动和情感劳动,这些被称为“开国元勋”的男性在实现脱离英国独立的目标方面就不会那么成功和得心应手。因此,今天,我们缅怀那些女性,那些被边缘化和被剥夺权利的人。

殖民地波士顿的政治团体:数据获取与探索性分析

方便的是,我上传了一个清理过的波士顿殖民地政治团体成员关联矩阵,作为资源对象到数据存储库。我们将使用导入资源数据给我们一个很好的数据框架。

PaulRevereData=ResourceData[“Paul Revere在Colonial Boston的社交网络”];

colonistsNames=正常@PaulRevereData[全部,“名称”];

长度[殖民者姓名]

我们可以看到,我们的数据集中有254名殖民者。让我们看看塞缪尔·亚当斯(Samuel Adams)是哪一个殖民叛军组织的成员,他在当代以7月4日庆祝活动中的关键成分啤酒而闻名。

PaulRevereData@SelectFirst公司[#[“Name”]==“Samuel Adams”&]

我们的真的/False(错误)价值观表明其是七个政治组织之一的成员:圣安德鲁斯旅馆、九号忠诚组织、北方核心小组、长房间俱乐部、茶党、波士顿通讯委员会和伦敦敌人。

我们可以看到亚当斯是其中四个成员之一。让我们看看里维尔的会员资格。

PaulRevereData@SelectFirst公司[#[“Name”]==“Paul Revere”&]

正如我们所见,里维尔的参与程度稍高,因为他是五个小组的成员。我们可以很容易地绘制出他在这些政治组织中的成员身份。对于那些不熟悉网络功能的人来说,节点代表代理,它们之间的线代表某种连接、交互或关联。

住宿=正常@休息[Keys[First[PaulRevereData]]];使用[{g=Flatten[Normal[With[{row=#,name=#name},If[row[#],name<->#,Nothing]和/@lodges]和/@PaulRevereData]]},HighlightGraph[g,NeighborhodGraph[g,“Paul Revere”,1,VertexLabels->Automatic],GraphLayout->“RadialDrawing”,Vertex标签->自动,Vertex-LabelStyle->Background->白色,图像大小->大]]

总共有七个组织,让我们通过将政治组织突出显示为红色节点,并将个人附加到每个节点来了解它们是如何连接的。

HighlightGraph[Flatten[Normal[With[{row=#,name=#name},If[row[#],name<->#,Nothing]和/@lodges]和/@PaulRevereData]],lodges,VertexLabels->Placed[“name”,Top],ImageSize->Large,Vertex LabelStyle->Background->White,VertexSize->3]

我们可以看到,茶党和圣安德鲁斯酒店的成员比九号忠诚酒店和其他酒店的成员多,我们现在将在微观层面进一步探讨。

政治组织中的个人网络:紧密性和中心性

到目前为止,我们所做的是相当宏观和探索性的。让我们通过在这些不同的组中共享成员身份来深入了解每个人之间的联系。本质上,我们正在移除我们的政治组织节点,并将重点放在单个殖民者身上。我们将使用工具提示帮助我们识别网络中的每个参与者。

双部分相邻矩阵=Boole@正常[PaulRevereData[Values,Rest]];edges=ReplacePart[bipartiteAdjacencyMatric.Transpose[bipartiteAdjacencyMatric],{i_,i_}->0];personPersonGraph=AdjacencyGraph[colonistsNames,edges,EdgeStyle->{Opacity[.1]},GraphLayout->“RadialDrawing”,ImageSize->Large,VertexSize->Automatic,Vertex Labels->Placed[“Name”,Tooltip],PlotLabel->“Colonist Network”]

我们现在使用一种称为介于居中它衡量网络中代理的中心性。它是通过该代理的其他代理对之间最短路径的分数。例如,由于参与者可以在其他代理之间代理信息,因此通过测量节点如何位于参与者对之间,而节点和其他参与者之间没有任何东西,此度量成为确定网络中特定节点重要性的关键。

我们将首先创建一个函数,它不仅允许我们可视化介于居中,但也特征向量中心紧密性中心性.

HighlightCentrality[g_,cc_]:=Highlight Graph[g,Table[Style[VertexList[g][i]],ColorData[“TemperatureMap”][cc[i]]/Max[cc]]],{i,VertexCount[g]}]

我们从以下几个简短的代码开始介于居中使用定义的颜色数据向我们展示哪些参与者通过网络传输资源或信息的能力最强,以及之前定义的工具提示。

HighlightCentrality[personPersonGraph,BetweennessCentrality[personPersonGraph]]

瞧,保罗·里维尔(Paul Revere)的中间性得分似乎比网络中的任何其他人都要高得多。值得注意的是,约翰·亚当斯(John Adams)是我们射线图的中心,但他似乎在网络中没有太大权力。让我们抓住数字。
前五名[measure_,heading_]:=TableForm[TakeLargestBy[Transpose[{colonistsNames,measure}],#[2]&,5],TableHeadings->{None,{“Colonist Rebel”,heading}]

betweenness=BetweennessCentrality[personPersonGraph];前十名[居中,“居中”]

里维尔的得分几乎是第二高殖民者托马斯·乌兰的两倍。这表明了里维尔作为信息经纪人在网络中的重要地位。由于他是七个小组中的五个小组的成员,这并不奇怪,但如果没有这种类型的调查,这可能会被忽视。

紧密度中心不同于中间值,因为我们关心到其他参与者的路径长度。这些代理可以通过短路径到达大量其他参与者,它们能够比网络外围的代理更有效地传播信息,甚至发挥权力。让我们再次在网络上运行我们的功能,然后看看紧密度中心看看里维尔是否仍然排名最高。

HighlightCentrality[personPersonGraph,ClonessCentrality[personPersonGraph]]

里维尔似乎排名最高,但远不及他的中间性得分那么引人注目,而且约翰·亚当斯的得分也很低。让我们获取测量值以进行进一步分析。

closeness=ClosenessCentrality[personPersonGraph];前十名[亲密度,“亲密度”]

正如我们的节点热图着色显示的那样,其他殖民者与里维尔相差不远,尽管他肯定是排名最高的。虽然网络中还有其他重要人物,但里维尔显然是资源、权力或信息的最有效经纪人。

我们可以检查的最后一项措施是特征向量中心它使用更高级的算法,并考虑到所有节点的中心性以及单个参与者在高度集中的代理之间的接近性和嵌入性。

HighlightCentrality[personPersonGraph,EigenvectorCentrality[personPersonGraph]]

最高特征向量得分似乎有两个顶级竞争者。让我们再次计算表格中的测量值以供检查。

特征向量中心=特征向量中心[personPersonGraph];前十名[特征向量中心,“特征向量中心”]

纳撒尼尔·巴伯和里维尔的得分几乎相同;然而,里维尔仍然位居榜首。现在,让我们看看前五个亲密度得分,并创建一个没有这些得分的网络,看看网络的凝聚力可能会发生什么变化。

sHoleData=选择[PaulRevereData,!MemberQ[{“Paul Revere”,“Thomas Chase”,“Henry Bass”,“Nathaniel Barber”,”Thomas Uran“},#Name]&];

shcolonistsNames=StringJoin[Riffle[Reverse[StringSplit[#,“.”]],“”]]&/@正常@sHoleData[全部,“名称”];

shbipartiteAdjacencyMatrix=Boole@正常[sHoleData[Values,Rest]];shedges=ReplacePart[shbipartiteAdjacencyMatrix.Transpose[shbippartiteAdjacenceMatrix],{i_,i_}->0];shpersonPersonGraph=AdjacencyGraph[shclonistsNames,shedges,EdgeStyle->{Opacity[1]},GraphLayout->“RadialDrawing”,VertexLabels->Placed[“Name”,Tooltip],PlotLabels->“Without Key Colonists”];

GraphicsRow[{shpersonPersonGraph,personPerson Graph},ImageSize->Large]

我们在左边的图表中看到了相当大的变化,我们的主要参与者被删除了,这表明那些接近度排名前五的人对于将这七个政治组织结合在一起是相当重要的。约瑟夫·沃伦(Joseph Warren)似乎是少数几个能够在不同的联系群之间架起桥梁的人之一。本质上,很难通过左侧的网络自由传播信息,而右侧的网络包括Paul Revere。

结论

正如我们所看到的,我们可以利用历史中的网络科学来揭示或揭露基于群体成员元数据的关于人物在历史事件中重要性的误导性先入之见。在菲舍尔分析之前,许多人认为里维尔只是一个信使,而不是一个主要人物。然而,我能够证明的是,里维尔在弥合不同政治团体方面的重要性。这进一步表明,革命运动的目标是多元化的。由于对乔治三世国王暴政的蔑视、导致血腥叛乱的不公正英国军事行动和政策,而不一定是来自政治精英的自上而下的指示,网络最终被捆绑在一起。

除了历史之外,网络科学和自然语言处理还有许多应用,例如揭示隐藏的信息、资源和权力的经纪人,即社会资本。人们可以很容易地想象这对计算营销或公共关系是如何有用的。

你将如何利用网络科学来揭示他人的见解,从而彻底改变和破坏你的工作或兴趣?

特别感谢Wolfram|Alpha公司数据科学家亚伦·恩赖特(Aaron Enright)帮助撰写了这篇博客文章,查理·布鲁米特(Charlie Brummitt)提供了这一分析的开始。


下载此帖子作为可计算文档格式(CDF)文件。CDF新手? 用这个免费获得你的副本一次性下载.

评论

加入讨论

!请输入您的评论(至少5个字符)。

!请输入您的姓名。

!请输入有效的电子邮件地址。

2条评论

  1. 这绝对令人着迷。谢谢分享!

    答复
  2. 迷人的文章。很好地使用了wolfram工具和解释。谢谢您。

    答复