Jak Onet pracuje na Facebooku?

W poprzednim poście zrobiłem analizę postów publikowanych przez polskie redakcje informacyjne na Facebooku. Zabrakło tam redakcji z grupy Ringier Axel Springer Polska.

W związku z licznymi prośbami – dzisiaj pogłębiona analiza postów Onetu.

Zajmiemy się fanpage’em “głównym” i ostatnimi dwoma tysiącami postów.

Skorzystałem z funkcji get_fanpage_posts() napisanej w poprzednim poście, więc zainteresowanych tam odsyłam po szczegóły techniczne.

Zobaczmy jakiego typu posty publikuje Onet:

Prawie 77% – linki, 16.75% wideo, 6% zdjęcia.

Jak to wygląda ilościowo – liczba postów publikowanych w ciągu dnia w zależności od dnia tygodnia, im bardziej żółte tym więcej:

O drugiej w nocy to w Onecie się śpi. Automaty publikujące też śpią.

Jak wyglądają globalnie interakcje z postami w czasie? Zobaczmy od razu na wygładzonych krzywych:

Czerwone – lajki, zielone – komentarze, a niebieskie to “szery”. Jak widać – like dominuje, co jest naturalne.

Z ciekawości sprawdźmy jeszcze rozkłady – czy na grubych wartościach przewaga lajków jest widoczne?

8.5 raza więcej lajków niż komentarzy (średnie 259.1 do 30.44, podobnie w medianach), dwa razy więcej “szerów” niż komentarzy. Ma to sens.

Mamy zgrubny obraz działań redakcyjnych, ale są jeszcze użytkownicy, którzy wchodzą w interakcje z postami. Kim są? Co robią? Kiedy to robią?

Potrzebujemy danych szczegółowych każdego postu. Przygotujemy odpowiednią funkcję i pobierzemy szczegóły (komentarze i lajki):

Kod komentuje się sam i specjalnie jest napisany w tak oczywisty sposób ;)

Zresztą moje założenie jest takie, że jeśli czytasz tego bloga bo chcesz się nauczyć R to musisz trochę już znać język. A jeśli interesują Cię wyniki analiz – kod nie jest Ci potrzebny.

Sprawdźmy co widać w pobranych danych – na przykład kto lajkuje najwięcej?

from_id n p
765792643488287 962 48.10
117369568765683 708 35.40
1626762774218087 603 30.15
1509454992712237 579 28.95
134406080245666 516 25.80
1497820407125220 511 25.55
694381153959631 505 25.25
1592056757683674 461 23.05
274458252970959 461 23.05
1397678880555423 393 19.65

W tabeli powyżej mogłyby pojawić się nazwiska (wystarczy zamienić from_id na from_name), ale nie chcę tego robić (chociaż jak widać te informacje są publiczne). Lider(ka) dał(a) lajka prawie połowie postów (48%)! No to musi być miłość…

Kto napisał najwięcej komentarzy? Znowu – tylko IDki użytkowników, nie nazwiska:

from_id n p
1466984766960019 314 15.70
507983079343646 109 5.45
543957139059303 96 4.80
122810131418675 87 4.35
1464805913849186 84 4.20
1030590347068474 72 3.60
115975748747575 66 3.30
769660986403035 65 3.25
528748793932975 64 3.20
219332305072990 62 3.10

Weźmy tego pierwszego (skomentował prawie co szóstego posta!) – czy to komentarze do różnych postów czy do jednego (jakaś dyskusja)?

Przy takim rozkładzie (średnia nieco ponad 1, trzeci kwartyl równy jeden, maksimum równe dwa) można być praktycznie pewnym, że tylko kilka komentarzy dotyczy tego samego postu. Proszę sprawdzić samodzielnie.

A kto udzielał się w dyskusji (czyli napisał dużo komentarzy pod jednym postem)? Jeśli ktoś taki jest to pod jakim postem?

from_id post_id n
1409834469287770 185265414715_10154394754944716 21
720664394689826 185265414715_10154468251179716 21
144237015938786 185265414715_10154501451039716 20
845900115496276 185265414715_10154501451039716 16
1525684074381514 185265414715_10154487441754716 15
1659327344324010 185265414715_10154475004724716 14
843981655682542 185265414715_10154501451039716 12
422307901239180 185265414715_10154472572149716 10
627261217384010 185265414715_10154432344394716 10
630185733702545 185265414715_10154394754944716 10

Mamy post o ID 185265414715_10154394754944716 i komentującego o ID 1409834469287770 – co to?

created_time message
2017-02-01 12:54:44
2017-02-01 12:58:16
2017-02-01 12:58:28
2017-02-01 13:07:53
2017-02-01 13:08:03
2017-02-01 13:08:12
2017-02-01 13:08:18
2017-02-01 13:08:25
2017-02-01 13:08:31
2017-02-01 13:08:37
2017-02-01 13:08:43
2017-02-01 13:08:49
2017-02-01 13:08:56
2017-02-01 13:09:02
2017-02-01 13:09:10
2017-02-01 13:09:16
2017-02-01 13:09:22
2017-02-01 13:09:28
2017-02-01 13:09:34
2017-02-01 13:09:42
2017-02-01 13:09:48

Komentarze co 8 sekund, bez żadnej treści słownej – proszę zobaczyć na post i komentarze do niego, wszystko się wyjaśni. W danych można sprawdzić kim jest ten użytkownik (albo po jego ID wklejonym w URLa do Facebooka).

Przeanalizowaliśmy dość szczegółowo jeden post. Wróćmy do globalnego przeglądu – ile czasu mija od publikacji postu do komentarza?

Prosta różnica czasów daje wynik w sekundach – dlatego dzielimy przez 60 (do minut) i zaokrąglamy w dół do najbliższej całkowitej (floor()).

Pierwsza doba wygląda tak (czerwone kreski to kolejne godziny):

Dużo na początku, im później tym mniej.

Centyle po godzinach:

Widać, że połowa komentarzy pojawia się do maksymalnie czterech godzin po publikacji, a w pierwszej dobie mamy ponad 90% komentarzy. W pierwszej godzinie mieści się 30% komentarzy.

Zobaczmy jak dokładniej wygląda ta pierwsza godzina:

Skąd pik przy 30 minutach? Ten pik w połączeniu z 50% percentylem w okolicach 3 godziny łączyłbym z sposobem sortowania treści na wallu jaki widzimy na Facebooku. Ciekaw jestem (wie to zapewne Facebook) jaki procent ogląda swojego walla z poziomu sortowania “najnowsze najpierw”, a jaki “najpopularniejsze najpierw”. Zgadnijcie, których jest więcej…

Czy widać jakieś szczególne pory kiedy pojawiają się komentarze?

To jest na sumach a nie średnich per post czy cokolwiek… Metodologicznie nie za dobrze, ale ważny jest charakter rozkładu (uśredniony będzie podobny – sprawdźcie).

Znowu widać rozkład “konsumpcji” internetu w Polsce – do porannej kawy i po południu albo wieczorem. O tym było też poprzednio.

Sprawdźmy jeszcze to samo jako mapa cieplna w tygodniu (żółty = bardziej):

Weźmy ten najbardziej żółty moment – to jest godzina 18 w piątek. Co to?

post_id n
185265414715_10154420101434716 155
185265414715_10154498692109716 88
185265414715_10154440933599716 54
185265414715_10154401824069716 47
185265414715_10154475866729716 46
185265414715_10154439805594716 41
185265414715_10154419804359716 30
185265414715_10154398679889716 26
185265414715_10154498303154716 24
185265414715_1800396303617326 23

Widzimy, że maksymalna liczba komentarzy pojawiła się pod poste numer 185265414715_10154420101434716 – co to było? Ta dam!

Na koniec jeszcze zobaczmy na treść postów. Z grubsza, “bez czytania” (uwielbiam to podejście – zobaczcie wyniki Oskarów o ile nie znacie). Zobaczymy jakie słowa są najbardziej popularne w postach jak i w komentarzach. Pojedyncze słowa – zmniejszamy litery, rozdzielamy, liczymy, zostawiamy te co mają co najmniej 3 znaki.

W tym momencie warto zerknąć w powstałe tabelki words_posts oraz words_comments. Można pozwolić sobie na jeszcze nieco filtrowania, na pewno polskie stop-words (słownik znalazłem w Google):

To samo powtarzamy dla tych samych słów pozbawionych polskich literek – słownik jest ten sam, ręcznie edytowany przez “znajdź i zamień” znaki z ogonkami na takie bez ogonków. Bo ludziom się nie chce czasem wcisnąć ALT.

Później zaglądamy w dane, szczególnie do words_posts i znajdujemy tam dużą liczbę przy słowie “wiem” – to reklamowy hash tag Onetu, widać go często, także na Twitterze. Usuwamy.

Teraz możemy narysować chmurki najpopularniejszych słów. Najpierw potrzebne biblioteki i paleta kolorów, a już za moment wyniki.

Najpopularniejesze słowa w postach:

Najpopularniejsze słowa w komentarzach:

Co jeszcze można zrobić? Można spróbować na podstawie częstości występowania słów w postach określić “charakteru” postu (sport, polityka – tego trzeba maszynę nauczyć). Później z takim “charakterem” też można się pobawić – kiedy więcej polityki, a kiedy informacje bardziej rozrywkowe? Co przynosi więcej lajków, a co więcej komentarzy? Jakie są to komentarze?

Dodaj komentarz