Kartlägg en Facebookgrupp, del II

Av: Leo Wallentin, Datajournalist, J++ och Newsworthy

Hem/Inlägg/Kartlägg en Facebookgrupp, del II

Det här är den andra delen av två, där vi kartlägger Facebookgrupper. I den första delen samlade vi in data, och i den andra delen ska vi analysera den.

I förra avsnittet hämtade vi hem namnen på alla medlemmar i en öppen Facebookgrupp. Inför det här avsnittet behöver vi börja med att göra samma sak igen, men för en närliggande grupp. Välj ytterligare en grupp, där du förväntar dig ett överlapp mellan medlemmarna och hämta även dem!

Hitta centralgestalterna i Excel

En av de första frågorna att ställa till ett material som det här, är vilka som är de centrala personerna i våra listor. Finns det personer som är med i alla (båda) de grupper vi har skrejpat?

För att hitta alla namn som finns i båda tabellerna, eller listorna, kommer vi använda en kombination av två Excelformler: FILTER och MATCH. En egenhet med Excel är att du som sitter i en svenskspråkig miljö måste använda svenska versioner av formelnamnen. I widgeten här nedanför kan du växla mellan svenska och engelska, och se hur det ska se ut hos dig. (Samma formler går att använda även i exempelvis LibreOffice och Google Sheets.)

MATCH används för att hitta ett värde (till exempel ett namn) i en lista av värden. Vi kan testa att leta efter till exempel det översta namnet i grupp 1, Buffy Summers, i grupp 2, med formeln =MATCH(A1, B:B, 0), där A1 är namnet vi letar efter (Buffy Summer), B:B, är tabellen vi söker i (B:B betyder ”hela kolumn B”), och 0 betyder att vi bara vill ha exakta träffar. Om du skrivit rätt, bör du få ett felmeddelande(!)

Prova att autofylla formeln några rader ner (klicka på den blå kvadraten i cellens nedre högra hörn, den som muspekaren blir ett hårkors när du hovrar över, och dra nedåt en bit). Nu bör du få felmeddelanden på vissa rader, och en siffra på andra (klicka på en cell för att se formeln).

Siffror betyder att vi har fått träff (det är radnumret vi får tillbaka, men det är inte viktigt här), och felmeddelande att vi inte fått träff. Den första person i grupp 1 som också är med i grupp 2 är alltså Cordelia Chase!

Notera att de olika parametrarna till formeln skiljs åt med kommatecken i engelskspråkiga miljöer, men semikolon i svenskspråkiga (eftersom kommatecknet har en annan betydelse vid svensk talformatering, som decimalavgränsare).

Nu har vi hittat ett sätt att skilja personer som förekommer i båda listorna från dem som inte gör det. Härifrån kan vi förstås sortera fram dem vi har fått träff på, men ännu hellre kanske vi vill skapa en ny lista av dem, för att kunna gå vidare med i vår analys. (Kanske matcha dem i sin tur mot en tredje lista?)

För att skapa en nya lista utifrån något urvalskriterium (MATCH-formeln i vårt fall), använder vi funktionen FILTER. Den gör vad det låter som; Filtrerar ut element ur en lista. Här stoppar vi in två argument: Den ursprungliga listan (kolumn A), och villkoret (MATCH-formeln), men med skillnaden att vi nu helt magiskt kan mata MATCH-formeln med en hel kolumn, i stället för en cell i taget:

Här har vi använt match-formeln för att kolla om en person ur en lista finns i en annan. Det finns fler sätt, exempelvis med VLOOKUP, och även det kommer att fungera med FILTER.

Samma princip går att använda på en hel tabell med flera kolumner. Här har vi tagit med både namn och profillänkar från Facebook-skrejpingen (för att göra arket mindre rörigt har vi flyttat det andra skrejpingresultatet till en separat flik:

Generellt är det att rekommendera att ha ett kalkylark för varje lista, och ytterligare ett för att göra själva analysen. Det är ofta en bra idé att hålla isär data och analys. Det minskar risken för att data förstörs, gör det enklare att i efterhand följa processen, och gör det möjligt att enkelt uppdatera datan, utan att behöva göra om hela analysarbetet.

Visualisera med Graph Commons

Nätverksdata, som alla annan data, är ibland enklast att förstå när man visualiserar den. Här använder vi onlinetjänsten https://graphcommons.com/

Graph Commons är ett ganska väldokumenterat och lättanvänt verktyg. Grafverktyg av det här slaget jobbar med två typer av data: Noder (som representerar olika saker, i vårt fall personer och Facebookgrupper), och relationer, som på grafspråk kallas kanter eller edges, med ett låneord från matematikens grafteori. Vi behöver dock oftast bara skapa relationerna, och kan låta Graph Commons själv sluta sig till vilka noder som ska finnas. För att importera relationer från en Excelfil, behöver du först se till att den följer ett specifikt format, med följande kolumnnamn: From Type, From Name, Edge, To Type, To Name och Weight. I vårt fall kunde det se ur så här:

Nu kan du använda ”import”-funktionen i menyn till vänster, så skapas automatiskt noder och relationer. Du får en nod för varje namn, och noderna kommer att bli av två typer: ’person’ och ’group’. Relationen har vi kallat ’member of’. Alla de här namnet är godtyckliga. Så länge kolumnnamnen är rätt, kan du stoppa in vilka värden som helst. Weight=1 betyder att alla relationer ska vara lika ”starka”, när vi visualiserar eller gör analys i Graph Commons.

Här har vi importerat en tabell med personer och medlemskap i tre grupper, och vi ser direkt att det finns en handfull personer som är centrala. Utöver att utforska nätverket för hand, kan vi också använda ett antal analysverktyg, för att identifiera exempelvis centralgestalter i mer komplexa grafer.

Graph Commons är ett enkelt sätt att skaffa överblick över ett nätverk, men eftersom det körs i webbläsaren är det inte hur kraftfullt som helst. När du har hundratusentals noder och relationer är det dags att titta på Gephi, Graphviz eller liknande program. Men för två eller tre Facebookgrupper fungerar det ofta bra.

Värt att notera här är att vi använt namn för att identifiera personer. Det betyder att vi inte skiljer på två personer med samma namn. I en Facebookskrapning hade vi istället kunnat använda adressen till profilsidan, eller användar-id. Här använder vi namnen för att göra visualiseringarna tydligare.