Habrastatistika: analiziranje komentarjev bralcev

Pozdravljeni Habr. IN prejšnji del Analizirana je bila priljubljenost različnih razdelkov spletnega mesta, hkrati pa se je pojavilo vprašanje - katere podatke je mogoče pridobiti iz komentarjev na članke. Prav tako sem želel preizkusiti eno hipotezo, o kateri bom razpravljal v nadaljevanju.
Habrastatistika: analiziranje komentarjev bralcev

Podatki so se izkazali za zelo zanimive, uspelo nam je ustvariti tudi majhno "mini oceno" komentatorjev. Nadaljevanje pod rezom.

Zbiranje podatkov

Za analizo bomo uporabili podatke za letošnje leto 2019, še posebej, ker sem že prejel seznam člankov v obliki csv. Vse kar ostane je, da iz vsakega članka izluščimo komentarje, na našo srečo so tam shranjeni in vam ni treba vlagati dodatnih zahtev.

Za osvetlitev komentarjev iz članka zadostuje naslednja koda:

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)

To nam omogoča, da dobimo seznam komentarjev, ki je videti nekako takole (vzdevki odstranjeni zaradi zasebnosti):

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

Kot lahko vidite, lahko za vsak komentar pridobimo uporabniško ime, datum, oceno in dejansko besedilo. Poglejmo, kaj lahko dobimo od tega.

Mimogrede, na začetku je bila ideja zbiranja ocen nekoliko drugačna - videti, kakšne ocene dajejo uporabniki. Na primer, lahko pogledate YouTube - tudi najbolj idealen videoposnetek, tudi videoposnetek, ki ne nosi nobenih subjektivnih informacij, zgolj za referenco ali sporočilo za javnost, še vedno pridobi določeno število minusov. Hipoteza je bila, da obstajajo uporabniki, ki jim čisto klinično ni čisto vse všeč, mogoče serotonin ne proizvaja v možganih ali kaj drugega. Mogoče človeku ni več treba sedeti na Habréju, ampak zdraviti depresijo ... Toda kot se je izkazalo, tega tukaj ne morem preveriti, ker ... seznam tistih, ki so dali ocene, ni shranjen v komentarju ali članku. No, to je, delali bomo z razpoložljivimi podatki. Rezultat je "obratna" ocena - lahko vidite, kakšne ocene _prejmejo_ uporabniki. Kar je načeloma tudi zanimivo.

Predelava

Za začetek tradicionalna izjava o omejitvi odgovornosti. Ta ocena je, tako kot vse prejšnje, neuradna. Ne garantiram, da se nisem nikjer zmotil. Za tiste, ki jih zanimajo tehnične podrobnosti, je na voljo podrobnejša koda v prejšnjem delu.

Pa začnimo. Komentarji za letošnje leto 2019 (ki ga še ni konec) smo vzeli v analizo. V času pisanja so uporabniki pisali 448533 комментария, velikost datoteke csv je 288 MB. Močan, impresiven.

Čas pisanja

Združimo komentarje po urah, ločeno razdelimo delavnike in vikende.

Habrastatistika: analiziranje komentarjev bralcev

Tu nas ne zanimajo absolutne vrednosti, temveč relativne. Če samo pogledate "kot je", potem se izkaže, da jeоNajveč komentarjev je bilo napisanih med delovnim časom od 10 do 18 😉 Po drugi strani pa se tu ne upoštevajo časovni pasovi, tako da je vprašanje še vedno odprto.

Poglejmo porazdelitev komentarjev skozi vse leto:

Habrastatistika: analiziranje komentarjev bralcev

In vendar se vrti, ob delavnikih je jasno viden val - tedenska periodičnost je jasno vidna, tako da lahko z dokaj visoko stopnjo zanesljivosti trdimo, da ljudje berejo in komentirajo Habr iz službe (vendar to ni gotovo).

Mimogrede, obstajala je ideja, da bi preverili hipotezo, ali se število prejetih minusov ali plusov razlikuje od dneva ali ure dneva, vendar ni bilo mogoče najti povezave - čas, ko je bila podana ocena, ni shranjen in neposredne povezave s časom komentarja ni.

Člani

Seveda ne vem točnega števila uporabnikov na strani. Toda tisti, ki so letos pustili vsaj en komentar, so se izkazali za približno 25000 ljudi.

Graf števila sporočil, ki so jih pustili uporabniki, je precej zanimiv:

Habrastatistika: analiziranje komentarjev bralcev

Sprva tudi sam nisem verjel, a zdelo se je, da ni pomote. 5 % uporabnikov pusti 60 % sporočil. 10% - 74% vseh sporočil (od tega, naj spomnim, letos 450 tisoč). Večina preprosto bere spletno mesto, zelo redko pušča komentarje ali jih sploh ne pušča (tisti seveda niso bili vključeni na moj seznam).

Ocene

Preidimo na zadnji in najbolj zabaven del statistike – ocene. Zaradi zasebnosti ne bom navajal polnih vzdevkov uporabnikov, kdor bo želel, mislim, da se bo prepoznal.

Na število komentarjev za letos top 5 zasedajo VoXXXX (3377 komentarjev), 0xdXXXX (3286 komentarjev), strXXXX (3043 komentarjev), AmXXXX (2897 komentarjev) in khXXXX (2748 komentarjev).

Na število prejetih ugodnosti, top 5 zasedajo amXXXX (1395 komentarjev, ocene +3231/-309), tvXXXX (1544 komentarjev, ocene +3231/-97), WhuXXXX (921 komentarjev, ocene +2288/-13), MTXXXX (1328 komentarjev, +1383 /-7) in amaXXXX (736 komentarjev, ocena +1340/-16).

Na absolutno pozitivna ocena (nihče negativno ocenjen komentar) vrh vrha zaseda Milfgard и Boomburum. Izjemoma predstavljam njihove vzdevke v celoti, mislim, da si to zaslužijo.

Zanimive so tudi slabosti. Na vrhu število zbranih minusov za letos jih zasedajo siXX (473 plusov, 699 minusov), khXX (1915 plusov, 573 minusov) in nicXXXXX (456 plusov, 487 minusov). A kot vidite, imajo ti uporabniki dovolj pozitivnih komentarjev. Toda glede na absolutni minus Protitopik vključuje vladXXXX (55 komentarjev, 84 minusov, 0 plusov), ekoXXXX (77 komentarjev, 92 minusov, 1 plus) in iMXXXX (225 komentarjev, 205 minusov, 12 plusov).

Zaključek

Vsega načrtovanega nisem uspel izračunati, upam pa, da je bilo zanimivo.

Kot lahko vidite, lahko tudi nabor podatkov s tako majhnim številom polj zagotovi zanimive podatke za analizo. Treba je še veliko poglobiti, od gradnje »besednega oblaka« do analize besedila. Če se bodo pojavili zanimivi rezultati, bodo objavljeni.

Vir: www.habr.com

Dodaj komentar