Habrastatystyka: analiza komentarzy czytelników

Witaj Habr. W poprzednia część Przeanalizowano popularność poszczególnych sekcji serwisu, jednocześnie pojawiło się pytanie – jakie dane można wyciągnąć z komentarzy pod artykułami. Chciałem także przetestować jedną hipotezę, którą omówię poniżej.
Habrastatystyka: analiza komentarzy czytelników

Dane okazały się dość ciekawe, udało nam się też stworzyć małą „mini-ocenę” komentatorów. Ciąg dalszy pod rozcięciem.

Zbieranie danych

Do analizy wykorzystamy dane za ten rok 2019, tym bardziej, że otrzymałem już listę artykułów w formacie csv. Pozostaje tylko wyodrębnić komentarze z każdego artykułu; na szczęście dla nas są one tam przechowywane i nie trzeba składać żadnych dodatkowych próśb.

Aby wyróżnić komentarze z artykułu, wystarczy następujący kod:

r = requests.get("https://habr.com/ru/post/467453/")
data_html = r.text
comments = data_html.split('<div class="comment" id=')

comments_list = []
for comment in comments:
    body = Str(comment).find_between('<div class="comment__message', '<div class="comment__footer"').find_between('>', '</div>')# .replace('n', '-')
    if len(body) < 4: continue

    body = body.translate(str.maketrans(dict.fromkeys("tnrvf")))
    body = body.replace('"', "'").replace(',', " ").replace('<br>', ' ').replace('<p>', '').replace('</p>', '').replace('  ', ' ')

    user = Str(comment).find_between('data-user-login', '>').find_between('"', '"')
    date_str = Str(comment).find_between('<time class="comment__date-time comment__date-time_published', 'time>').find_between('>', '<')
    vote = Str(comment).find_between('<div class="voting-wjt', '</div>').find_between('<span', 'span>').find_between('>', '<')
    date = dateparser.parse(date_str)

    csv_data = "{},{},{},{}".format(user, date, vote, body)
    comments_list.append(csv_data)

Dzięki temu możemy uzyskać listę komentarzy, która wygląda mniej więcej tak (pseudonimy usunięte ze względu na ochronę prywatności):

xxxxxxx,2019-02-06 11:50:00,0,А можно пример как именно?
xxxxxxx-02-24 16:15:00,+1,Побольше читайте независимые официальные источники чтобы таких вопросов не было.
xxxxxxx,2019-02-23 20:15:00,–5,А не важно главное в итоге в плюсе оказаться

Jak widać, dla każdego komentarza możemy uzyskać nazwę użytkownika, datę, ocenę i faktyczny tekst. Zobaczmy, co możemy z tego uzyskać.

Nawiasem mówiąc, początkowo pomysł zbierania ocen był nieco inny - aby zobaczyć, jakie oceny wystawiają użytkownicy. Możesz na przykład spojrzeć na YouTube - nawet najbardziej idealny film, nawet taki, który nie zawiera żadnych subiektywnych informacji, wyłącznie w celach informacyjnych lub informacji prasowej, wciąż zyskuje pewną liczbę minusów. Hipoteza była taka, że ​​są użytkownicy, którym z czysto klinicznego punktu widzenia nie podoba się wcale wszystko, może serotonina nie jest wytwarzana w mózgu lub coś innego. Może nie trzeba już siadać na Habré, ale żeby leczyć depresję... Ale jak się okazało, nie mogę tego tutaj sprawdzić, bo... lista osób, które wystawiły oceny, nie jest zapisywana w komentarzu lub artykule. Cóż, to znaczy będziemy pracować z dostępnymi danymi. Rezultatem jest „odwrotna” ocena – możesz zobaczyć, jakie oceny _otrzymują_ użytkownicy. Co w zasadzie jest również interesujące.

Przetwarzanie

Na początek tradycyjna sprostowanie. Ocena ta, podobnie jak wszystkie poprzednie, jest nieoficjalna. Nie gwarantuję, że nigdzie się nie pomyliłem. Dla zainteresowanych szczegółami technicznymi udostępniony jest bardziej szczegółowy kod w poprzedniej części.

Więc zacznijmy. Do analizy wzięto komentarze za ten rok, 2019 (który jeszcze się nie zakończył). W momencie pisania tego tekstu użytkownicy pisali 448533 komentarz, rozmiar pliku CSV wynosi 288MB. Potężny, imponujący.

Czas pisania

Pogrupujmy komentarze według godzin, dzieląc osobno dni powszednie i weekendy.

Habrastatystyka: analiza komentarzy czytelników

Tutaj nie interesują nas wartości bezwzględne, ale względne. Jeśli spojrzysz na to „takim, jakie jest”, okazuje się, że takоWiększość komentarzy została napisana w godzinach pracy od 10 do 18 😉 Natomiast strefy czasowe nie są tu brane pod uwagę, więc kwestia nadal otwarta.

Przyjrzyjmy się rozkładowi komentarzy w ciągu roku:

Habrastatystyka: analiza komentarzy czytelników

A jednak się kręci, w dni powszednie wyraźnie widać wzrost – wyraźnie widać tygodniową cykliczność, więc z dość dużą pewnością można powiedzieć, że ludzie czytają i komentują Habr z pracy (choć nie jest to pewne).

Swoją drogą, był pomysł sprawdzenia hipotezy, czy liczba otrzymanych minusów czy plusów różni się od dnia lub pory dnia, ale nie udało się znaleźć zależności – czas wystawienia oceny nie jest zapisywany, a nie ma bezpośredniego związku z czasem komentarza.

użytkowników

Oczywiście nie znam dokładnej liczby użytkowników witryny. Ale ci, którzy zostawili co najmniej jeden komentarz w tym roku, okazali się w przybliżeniu Osób 25000.

Ciekawie wygląda wykres liczby wiadomości pozostawionych przez użytkowników:

Habrastatystyka: analiza komentarzy czytelników

Na początku sam w to nie wierzyłem, ale wydawało się, że to nie pomyłka. 5% użytkowników zostawia 60% wiadomości. 10% - 74% wszystkich wiadomości (z czego, przypomnę, w tym roku 450 tys.). Większość po prostu czyta stronę, zostawiając komentarze bardzo rzadko lub w ogóle ich nie zostawiając (te, oczywiście, nie znalazły się na mojej liście).

Opinie

Przejdźmy do ostatniej i najciekawszej części statystyk – ocen. Ze względu na prywatność nie będę podawać pełnych nicków użytkowników, kto chce, myślę, że się rozpozna.

Na liczba komentarzy w tym roku czołową piątkę zajmują VoXXXX (5 komentarzy), 3377xdXXXXX (0 komentarzy), strXXXX (3286 komentarzy), AmXXXX (3043 komentarzy) i khXXXX (2897 komentarzy).

Na liczbę otrzymanych świadczeń, top 5 zajmują amXXXX (1395 komentarzy, ocen +3231/-309), tvXXXX (1544 komentarzy, ocen +3231/-97), WhuXXXX (921 komentarzy, ocen +2288/-13), MTXXXX (1328 komentarzy, +1383 /-7) i amaXXXX (736 komentarzy, ocena +1340/-16).

Na ocena absolutnie pozytywna (ani jednego komentarz oceniony negatywnie) górna część góry jest zajęta przez Milfgard и Bumburum. Wyjątkowo podaję ich pseudonimy w całości, uważam, że na to zasługują.

Minusy też są ciekawe. Najlepsze według ilość zebranych minusów w tym roku zajmują je siXX (473 plusów, 699 minusów), khXX (1915 plusów, 573 minusów) i nicXXXXX (456 plusów, 487 minusów). Ale jak widać, ci użytkownicy mają wystarczająco dużo pozytywnych komentarzy. Ale według absolutny minus Antytopic obejmuje vladXXXX (55 komentarzy, 84 minusów, 0 plusów), ekoXXXX (77 komentarzy, 92 minusów, 1 plus) i iMXXXX (225 komentarzy, 205 minusów, 12 plusów).

wniosek

Nie udało mi się wyliczyć wszystkiego co zaplanowałem, ale mam nadzieję, że było ciekawie.

Jak widać, nawet zbiór danych o tak małej liczbie pól może dostarczyć ciekawych danych do analizy. Jest jeszcze wiele do zrobienia, od zbudowania „chmury słów” po analizę tekstu. Jeśli pojawią się jakieś interesujące wyniki, zostaną one opublikowane.

Źródło: www.habr.com

Dodaj komentarz