首页 » 神马SEO » 世界杯seo表头怎么写_本届世界杯冠军是谁我们用ChatGPT和图数据库一路猜测

世界杯seo表头怎么写_本届世界杯冠军是谁我们用ChatGPT和图数据库一路猜测

访客 2024-10-29 0

扫一扫用手机浏览

文章目录 [+]

本文转载自悦数科技,作者古思为。

蹭 ChatGPT 热度

最近由于天下杯正在进行,我受到这篇 Cambridge Intelligence的文章启示(在这篇文章中,作者仅仅利用有限的信息量和条件,借助图算法的方法做出了合理的冠军预测),想到可以试着用图数据库 NebulaGraph 玩玩冠军预测,还能顺道科普一波图库技能和图算法。

世界杯seo表头怎么写_本届世界杯冠军是谁我们用ChatGPT和图数据库一路猜测 世界杯seo表头怎么写_本届世界杯冠军是谁我们用ChatGPT和图数据库一路猜测 神马SEO

本来想着几个小时撸出来一个方案,但很快被数据集的网络事情劝退了,我是实在

同时,另一个热潮是上周五 OpenAI 发布了 ChatGPT 3做事,它可以实现各种措辞编码。
ChatGPT 可实现的繁芜任务设计包括:

世界杯seo表头怎么写_本届世界杯冠军是谁我们用ChatGPT和图数据库一路猜测 世界杯seo表头怎么写_本届世界杯冠军是谁我们用ChatGPT和图数据库一路猜测 神马SEO
(图片来自网络侵删)

● 随时帮你实现一段指定需求的代码

● 仿照任意一个 prompt 界面:shell、python、virtual machine、乃至你创造的措辞

● 带入给定的人设,和你谈天

● 写诗歌、rap、散文

● 找出一段代码的 bug

● 阐明一段繁芜的正则表达式的含义

ChatGPT 的高下文遐想力和理解力到了前所未有的程度,以至于所有打仗它的人都在谈论新的事情办法:如何节制让机器帮助我们完成特界说务。

以是,当我试过让 ChatGPT 帮我写繁芜的图数据库查询语句、阐明繁芜图查询语句的含义、阐明一大段 Bison 代码含义之后,我溘然意识到:为什么不让 ChatGPT 帮我写好抓取数据的代码呢?

抓取天下杯数据

我真试了下 ChatGPT,结果是:完备可以,而且彷佛真的很随意马虎。

全体实现过程,基本上我像是一个代码考试的口试官,或是一个产品经理,提出我的需求,ChatGPT 给出详细的代码实现。
我再试着运行代码,找到代码中不合理的地方,指出来并给出建议,ChatGPT 真的能理解我指出的点,并给出相应的改动,像是:

让chatGPT写抓取天下杯数据的代码

这一全过程我就不在这里列出来了,不过我把天生的代码和全体谈论的过程都分享在这里,感兴趣的同学可以去看看。

最终生成的数据是一个 CSV 文件:

● 代码天生的文件 world_cup_squads.csv

● 手动修正、分开了生日和年事的列 world_cup_squads_v0.csv

上面的数据集包含的信息有:球队、小组、编号、位置、球员名字、生日、年事、参加国际比赛场次、进球数、服役俱乐部。

Team,Group,No.,Pos.,Player,DOB,Age,Caps,Goals,Club

Ecuador,A,1,1GK,Hernán Galíndez,(1987-03-30)30 March 1987,35,12,0,Aucas

Ecuador,A,2,2DF,Félix Torres,(1997-01-11)11 January 1997,25,17,2,Santos Laguna

Ecuador,A,3,2DF,Piero Hincapié,(2002-01-09)9 January 2002,20,21,1,Bayer Leverkusen

Ecuador,A,4,2DF,Robert Arboleda,(1991-10-22)22 October 1991,31,33,2,São Paulo

Ecuador,A,5,3MF,José Cifuentes,(1999-03-12)12 March 1999,23,11,0,Los Angeles FC

这是手动删除了 CSV 表头的数据集 world_cup_squads_no_headers.csv。

数据集部分截图

图方法预测 2022 天下杯图建模

本文用到了图数据库 NebulaGraph 和可视化图探索工具 NebulaGraph Explorer,你可以在阿里云免费申请半个月的试用( 申请利用云端 NebulaGraph)。

图建模(Graph Modeling)是把真实天下信息以”点–>边“的图形式去抽象与表示。

这里,我们把在公共领域得到的信息映射成如下的点与边:

点:

● player(球员)

● team(球队)

● group(小组)

● club(俱乐部)

边:

● groupedin(球队属于哪一小组)

● belongto(队员属于国家队)

● serve(队员在俱乐部服役)

而队员的年事、参加国际场次(caps)、进球数(goals)则很自然作为 player 这一类点的属性。

下图是这个 schema 在 NebulaGraph Studio/Explorer(后边称 Studio/Explorer) 中的截图:

schema 在 NebulaGraph Studio/Explorer中的截图

我们点击右上角的保存后,便能创建一个新的图空间,将这个图建模运用到图空间里。

这里可以参考下 Explore 草图的文档:https://docs.nebula-graph.com.cn/3.3.0/nebula-explorer/db-management/draft/

导入数据进 NebulaGraph

有了图建模,我们可以把之前的 CSV 文件(无表头版本)上传到 Studio 或者 Explorer 里,通过点、选关联不同的列到点边中的 vid 和属性:

来自转载

完成关联之后,点击导入,就能把全体图导入到 NebulaGraph。
成功之后,我们还得到了全体 csv --> Nebula Importer 的关联配置文件:nebula_importer_config_fifa.yml,你可以直接拖拽全体配置,不用自己去配置它了。

来自转载

这里可以参考 Explorer 数据导入的文档:https://docs.nebula-graph.com.cn/3.3.0/nebula-explorer/db-management/11.import-data/

数据导入后,我们可以在 schema 界面查看数据统计。
可以看到,有 831 名球员参加了 2022 卡塔尔天下杯,他们服役在 295 个不同的俱乐部:

来自转载

这里我们用到了 Explorer 的 schema 创建的文档:https://docs.nebula-graph.com.cn/3.3.0/nebula-explorer/db-management/10.create-schema/#_6

探索数据查询数据

下面,我们试着把所有的数据展示出来看看。

首先,借助 NebulaGraph Explorer,我用拖拽的办法画出了任意类型的点(TAG)和任意类型点(TAG)之间的边。
这里,我们知道所有的点都包含在至少一个边里,以是不会漏掉任何伶仃的点。

来自转载

让 Explorer 它帮我天生查询的语句。
这里,它默认返回 100 条数据(LIMIT 100),我们手动改大一些,将 LIMIT 后面的参数改到 10000,并让它在 Console 里实行。

来自转载

初步不雅观察数据

结果渲染出来是这样子,可以看到结果自然而然地变成一簇簇的模式。

来自转载

这些外围、形成的簇多是由不怎么有名的足球俱乐部,和不怎么厉害的国家队的球员组成,由于常日这些俱乐部只有一两个球员参加天下杯,而且他们还集中在一个国家队、地区,以是没有和很多其他球员、国家队产生连接。

来自转载

图算法赞助剖析

在我点击了 Explorer 中的两个按钮之后,在浏览器里,我们可以看到全体图已经变成:

来自转载

这里可以参考 Explorer 的图算法文档:https://docs.nebula-graph.com.cn/3.3.0/nebula-explorer/graph-explorer/graph-algorithm/ 2

实在,Explorer 这里利用到了两个图算法来剖析这里的洞察:

1. 利用点的出入度,改变它们的显示大小突出主要程度

2. 利用 Louvain 算法区分点的社区分割

可以看到赤色的大点是鼎鼎大名的巴塞罗那,而它的球员们也被赤色标记了。

预测冠军算法

为了能充分利用图的邪术(与图上的隐含条件、信息),我的思路是选择一种利用连接进行节点主要程度剖析的图算法,找出拥有更高主要性的点,对它们进行全局迭代、排序,从而得到前几名的国家队排名。

这些方法实在就表示了厉害的球员同时拥有更大的社区、连接度。
同时,为了增加强队之间的区分度,我准备把出场率、进球数的信息也考虑进来。

终极,我的算法是:

● 取出所有的 (球员)-服役->(俱乐部) 的关系,过滤个中进球数过少、单场进球过少的球员(以平衡部分弱队的老球员带来的过大影响)

● 从过滤后的球员中向外探索,得到国家队

● 在以上的子图上运行 Betweenness Centrality 算法,打算节点主要度评分

算法过程

首先,我们取出所有进球数超过 10,场均进球超过 0.2 的 (球员)-服役->(俱乐部) 的子图:

子图截图

为了方便,我把进球数和出场数也作为了 serve 边上的属性了。

来自转载

然后,我们全选图上的所有点,点击左边的工具栏,选择出方向的 belongto 边,向外进行图拓展(遍历),同时选择将拓展得到的新点标记为旗帜的 icon:

来自转载

现在,我们得到了终极的子图,我们利用工具栏里的浏览器内的图算法功能,实行 BNC(Betweenness Centrality)

来自转载

末了,这个子图变成了这样子:

来自转载

预测结果

终极,我们根据 Betweenness Centrality 的值排序,可以得到终极的得胜球队该当是:巴西 !

其次是比利时、德国、英格兰、法国、阿根廷,让我们等两个星期回来看看预测结果是否准确吧 :D。

注:排序数据(个中还有非参赛球队的点)

预测结果

原文地址:https://discuss.nebula-graph.com.cn/t/topic/11584

相关文章

天门IT学校,培育未来科技人才的摇篮

随着我国经济的快速发展,信息技术产业已成为推动经济增长的重要引擎。为了培养更多优秀的IT人才,全国各地纷纷涌现出一批优秀的IT学校...

神马SEO 2024-12-27 阅读0 评论0

安踏IT专员,助力品牌数字化转型的幕后英雄

在互联网高速发展的今天,数字化转型已成为企业发展的必然趋势。作为我国著名的体育用品品牌,安踏近年来在数字化转型方面取得了显著成果。...

神马SEO 2024-12-27 阅读0 评论0

导出DLL包,提升软件开发效率的关键一步

在软件开发领域,DLL(动态链接库)包作为组件化编程的产物,已经成为现代软件开发的重要手段。导出DLL包,不仅有助于提高软件开发的...

神马SEO 2024-12-27 阅读0 评论0