Habrastatistika: analiza komentara čitalaca

Zdravo Habr. IN prethodni dio Analizirana je popularnost različitih dijelova stranice, a istovremeno se postavilo pitanje - koji se podaci mogu izvući iz komentara na članke. Hteo sam da testiram i jednu hipotezu, o kojoj ću govoriti u nastavku.
Habrastatistika: analiza komentara čitalaca

Podaci su se pokazali prilično zanimljivi, a uspjeli smo sastaviti i mali “mini rejting” komentatora. Nastavak ispod reza.

Prikupljanje podataka

Za analizu ćemo koristiti podatke za ovu, 2019. godinu, pogotovo što sam već dobio listu članaka u csv obliku. Sve što ostaje je da izvučemo komentare iz svakog članka, na našu sreću, oni su tamo pohranjeni i ne treba postavljati nikakve dodatne zahtjeve.

Za isticanje komentara iz članka dovoljan je sljedeći 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)

Ovo nam omogućava da dobijemo listu komentara koja izgleda otprilike ovako (nadimci su uklonjeni iz razloga privatnosti):

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

Kao što vidite, za svaki komentar možemo dobiti korisničko ime, datum, ocjenu i stvarni tekst. Hajde da vidimo šta možemo da dobijemo od ovoga.

Inače, u početku je ideja prikupljanja ocjena bila malo drugačija - da se vidi kakve ocjene daju korisnici. Na primjer, možete pogledati YouTube - čak i najidealniji video, čak i video koji ne nosi nikakve subjektivne informacije, čisto za referencu ili saopštenje, ipak ima određeni broj minusa. Hipoteza je bila da ima korisnika kojima se, čisto klinički, baš sve ne sviđa, možda se serotonin ne proizvodi u mozgu ili nešto drugo. Možda čovek više ne treba da sedi na Habréu, već da leči depresiju... Ali, ispostavilo se, ne mogu ovo da proverim ovde, jer... lista onih koji su dali ocene nije sačuvana u komentaru ili članku. Pa, to jest, radit ćemo s dostupnim podacima. Rezultat je "obrnuta" ocjena - možete vidjeti koje ocjene _primaju_ od strane korisnika. Što je, u principu, takođe zanimljivo.

Obrada

Za početak, tradicionalno odricanje od odgovornosti. Ova ocjena je, kao i sve prethodne, nezvanična. Ne garantujem da nigde nisam pogrešio. Za one koji su zainteresovani za tehničke detalje, dat je detaljniji kod u prethodnom dijelu.

Pa počnimo. Komentari za ovu, 2019. godinu (koja još nije završena), uzeti su na analizu. U vrijeme pisanja, korisnici su pisali 448533 komentar, veličina csv datoteke je 288MB. Moćno, impresivno.

Vrijeme pisanja

Grupirajmo komentare po satima, odvojeno od dana rada i vikenda.

Habrastatistika: analiza komentara čitalaca

Ovdje nas ne zanimaju apsolutne vrijednosti, već relativne. Ako ga samo pogledate “kako jeste”, onda se ispostavi da je takoоVećina komentara je napisana tokom radnog vremena od 10 do 18 😉 S druge strane, vremenske zone se ovdje ne uzimaju u obzir, tako da je pitanje i dalje otvoreno.

Pogledajmo distribuciju komentara tokom godine:

Habrastatistika: analiza komentara čitalaca

A opet se rotira radnim danima - nedjeljna periodičnost je jasno vidljiva, tako da možemo s prilično visokim povjerenjem reći da ljudi čitaju i komentiraju Habr s posla (ali to nije sigurno).

Inače, postojala je ideja da se testira hipoteza da li se broj primljenih minusa ili plusa razlikuje od dana ili doba dana, ali nije bilo moguće pronaći odnos - vrijeme kada je ocjena dato nije sačuvano, a nema direktne veze sa vremenom komentara.

korisnici

Naravno, ne znam tačan broj korisnika na stranici. Ali ispostavilo se da je otprilike bilo onih koji su ostavili barem jedan komentar ove godine 25000 ljudi.

Grafikon broja poruka koje su korisnici ostavili izgleda prilično zanimljivo:

Habrastatistika: analiza komentara čitalaca

Isprva ni sam nisam vjerovao, ali činilo se da nije bilo greške. 5% korisnika ostavlja 60% poruka. 10% - 74% svih poruka (od toga, da podsjetim, ove godine 450 hiljada). Većina jednostavno čita stranicu, ostavljajući komentare vrlo rijetko, ili ih uopće ne ostavlja (oni, naravno, nisu bili na mojoj listi).

Ocjene

Pređimo na posljednji i najzabavniji dio statistike – ocjene. Iz razloga privatnosti, neću davati pune nadimke korisnika, ko hoće, mislim da će se prepoznati.

By broj komentara za ovu godinu, prvih 5 zauzimaju VoXXXX (3377 komentara), 0xdXXXXX (3286 komentara), strXXXX (3043 komentara), AmXXXX (2897 komentara) i khXXXX (2748 komentara).

By broj primljenih beneficija, top 5 zauzimaju amXXXX (1395 komentara, ocjene +3231/-309), tvXXXX (1544 komentara, ocjene +3231/-97), WhuXXXX (921 komentar, ocjene +2288/-13), MTXXXX (1328 komentara, +1383 /-7) i amaXXXX (736 komentara, ocjena +1340/-16).

By apsolutno pozitivna ocjena (niko negativno ocijenjen komentar) vrh vrha zauzima Milfgard и Boomburum. Izuzetno iznosim njihove nadimke u potpunosti, mislim da to zaslužuju.

Zanimljive su i mane. Top by broj prikupljenih minusa za ovu godinu ih zauzimaju siXX (473 plusa, 699 minusa), khXX (1915 plusa, 573 minusa) i nicXXXXX (456 plusa, 487 minusa). Ali kao što vidite, ovi korisnici imaju dovoljno pozitivnih komentara. Ali prema apsolutni minus Antitema uključuje vladXXXX (55 komentara, 84 minusa, 0 plusa), ekoXXXX (77 komentara, 92 minusa, 1 plus) i iMXXXX (225 komentara, 205 minusa, 12 plusa).

zaključak

Nisam uspeo da izračunam sve planirano, ali nadam se da je bilo zanimljivo.

Kao što vidite, čak i skup podataka sa tako malim brojem polja može pružiti zanimljive podatke za analizu. Ima još mnogo toga da se kopa, od izgradnje „oblaka reči“ do analize teksta. Ukoliko se pojave interesantni rezultati, biće objavljeni.

izvor: www.habr.com

Dodajte komentar