用香港文化學 Network Science · 第一篇

演算法無睇過《愛回家》,但自己搵到嘅三大家族

餵咗 2,867 集字幕落去,無比佢睇過一格畫面。佢自己分咗出三大家族。

解析度 γ(resolution)—— 拖動睇個網點樣散開
1.0γ
6個群體
◄ 最粗 · 家族溶埋做一嚿碎成小圈子 · 最細 ►

上次講到,馬來西亞嘅研究團隊,用佢哋嘅國民動畫Upin & Ipin砌咗一個角色網絡。而家我地借用返佢地嘅方法,套落去愛回家呢套劇集上。

一個最簡單嘅網絡,由點(nodes)同線(edges)組成。淨係定義好點同線,成個網絡嘅結構就已經有野睇。咁用字幕,啲「線」可以點嚟?我地用對白去組成一個網絡。我地用角色作為點,呢粒點越大代表佢比越多人講起。如果有角色「喺差唔多同一時間被提到」,佢哋之間就有條線;一齊出現得越密,條線就越粗。我地將每一集切成5分鐘一段,同一段入面一齊出現嘅名,就當佢哋有連繫。喺呢個分析入面,我無睇過電視畫面,亦無(或者話未)分析對白內容同劇情,淨係數邊啲名一齊出現。將滑鼠移到圓點,就會顯示佢個名同連結。

只係組成一個咁樣嘅網絡,就已經夠資源去分成三大社群:
🔴 熊家+打工組:Mary、仁哥
🟢 後生仔、校園:安仔、風少
🔵 龍家、接龍集團:大龍先生、Terry

無人教過佢邊個姓熊、邊個姓龍。佢淨係睇「邊啲角色成日連埋一齊」,就有呢個分類。呢個過程叫community detection(社群偵測)。

演算法點決定邊個同邊個一組?而家用緊嘅方法,可以用分枱食飯去諗。好嘅分法,係同枱嘅人真係傾得埋、跨枱就少來往。有條公式叫modularity(Q),專門幫呢種「分枱法」打分。簡單咁講,Q=組內連結,「比大家隨機亂坐」嘅預期多咗幾多。Q接近0,即係同亂坐冇分別;超過0.3就係有明顯群體。演算法試緊好多唔同種分枱法,揀 Q 最高嗰種。我哋呢個網絡,分成三大家族嗰陣,Q=0.442,遠遠高過0.3呢條線。

而「幾大先算一組」無固定答案。拖上面條γ:向右拖,三大社群會裂成細圈子;向左拖,大宅組同龍家會最先溶埋做一大陣營。

咁γ應該較幾多先「啱」?無標準答案嘅。which exactly is the point。三大家族唔係我哋校準出嚟嘅,將個掣喺0.85同1.0之間扭嚟扭去,張圖都係唔會郁。其實由0.7去到1.0,成段範圍入面最好嘅分法都係同一個。[1] 順手試埋扭去1.5,龍家會裂返開:返工嗰邊一枱,大龍先生班太太自成一枱。再放大啲,連公司入面邊個同邊個埋堆都可以現形。演算法無睇過一格畫面,但佢有辦法講到邊個真係成日同邊個做對手戲。

但其實有幾個人,連演算法都夾佢哋唔實:根叔、風少。擺佢地去邊枱都講得通。同一條算法行多幾次,每次答案都可以唔同 [2]。呢班「坐唔定嘅人」係咩事,之後會再講。

[1] 正式啲講,我哋將幾百次唔同設定行出嚟嘅分法由γ≈0.7到1.0去比較,成段範圍贏嘅都係同一個分法。呢套檢驗方法叫 CHAMP

[2] 「隨機亂坐」嗰把尺本身係固定嘅,冇隨機成分。隨機喺搵嘅過程:接近滿分嘅分法有好多個,演算法每次搵到其中一個就停,所以邊界人物次次都可以坐唔同枱。

netsci.ianip.me · 用香港文化學 network science