ChatGPT 加圖資料庫 NebulaGraph 預測 2022 世界盃冠軍球隊

2022-12-07 21:01:33

一次利用 ChatGPT 給出資料抓取程式碼,藉助 NebulaGraph 圖資料庫與圖演演算法預測體壇賽事的嘗試。

作者:古思為

蹭 ChatGPT 熱度

最近因為世界盃正在進行,我受到這篇 Cambridge Intelligence 的文章啟發(在這篇文章中,作者僅僅利用有限的資訊量和條件,藉助圖演演算法的方法做出了合理的冠軍預測),想到可以試著用圖資料庫 NebulaGraph 玩玩冠軍預測,還能順道科普一波相簿技術和圖演演算法。

本來想著幾個小時擼出來一個方案,但很快被資料集的收集工作勸退了,我是實在懶得去「FIFA 2022 的維基」抓取所需的資料,索性就擱淺、放了幾天。

同時,另一個熱潮是上週五 OpenAI 釋出了 ChatGPT 服務,它可以實現各種語言編碼。ChatGPT 可實現的複雜任務設計包括:

  • 隨時幫你實現一段指定需求的程式碼
  • 模擬任意一個 prompt 介面:Shell、Python、Virtual Machine、甚至你創造的語言
  • 帶入給定的人設,和你聊天
  • 寫詩歌、rap、散文
  • 找出一段程式碼的 bug
  • 解釋一段複雜的正規表示式的含義

ChatGPT 的上下文聯想力和理解力到了前所未有的程度,以至於所有接觸它的人都在討論新的工作方式:如何掌握讓機器幫助我們完成特定任務。

所以,當我試過讓 ChatGPT 幫我寫複雜的圖資料庫查詢語句、解釋複雜圖查詢語句的含義、解釋一大段 Bison 程式碼含義之後,我突然意識到:為什麼不讓 ChatGPT 幫我寫好抓取資料的程式碼呢

抓取世界盃資料

我真試了下 ChatGPT,結果是:完全可以,而且似乎真的很容易。

整個實現過程,基本上我像是一個程式碼考試的面試官,或是一個產品經理,提出我的需求,ChatGPT 給出具體的程式碼實現。我再試著執行程式碼,找到程式碼中不合理的地方,指出來並給出建議,ChatGPT 真的能理解我指出的點,並給出相應的修正,像是:

這一全過程我就不在這裡列出來了,不過我把生成的程式碼和整個討論的過程都分享在這裡,感興趣的同學可以去看看。

最終生成的資料是一個 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,你可以在阿里雲免費申請半個月的試用,入口連結是