Habrastatistika: lugejate kommentaaride analüüsimine

Tere Habr. IN eelmine osa Analüüsiti saidi erinevate osade populaarsust ja samal ajal tekkis küsimus - milliseid andmeid saab artiklite kommentaaridest välja võtta. Tahtsin ka testida üht hüpoteesi, mida allpool käsitlen.
Habrastatistika: lugejate kommentaaride analüüsimine

Andmed osutusid päris huvitavaks ja saime koostada ka väikese “minireitingu” kommenteerijatest. Jätkub lõike all.

Andmete kogumine

Analüüsiks kasutame selle, 2019. aasta andmeid, seda enam, et olen juba saanud csv-vormingus artiklite nimekirja. Jääb üle vaid igast artiklist kommentaarid meie õnneks välja võtta, need on seal salvestatud ja lisasoove pole vaja teha.

Artikli kommentaaride esiletõstmiseks piisab järgmisest koodist:

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)

See võimaldab meil saada loendi kommentaaridest, mis näevad välja umbes sellised (hüüdnimed on privaatsuse huvides eemaldatud):

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

Nagu näete, saame iga kommentaari kohta kasutajanime, kuupäeva, hinnangu ja tegeliku teksti. Vaatame, mis me sellest saame.

Muide, algselt oli hinnangute kogumise idee pisut erinev - vaadata, milliseid hinnanguid kasutajad annavad. Näiteks võite vaadata YouTube'i - isegi kõige ideaalsem video, isegi video, mis ei kanna subjektiivset teavet, puhtalt viitamiseks või pressiteate saamiseks, saab ikkagi teatud hulga miinuseid. Hüpotees oli, et on kasutajaid, kellele puhtkliiniliselt kõik ei meeldi, võib-olla ei toodeta ajus serotoniini või midagi muud. Võib-olla pole inimesel vaja enam Habrel istuda, vaid depressiooni ravida... Aga nagu selgus, ei saa ma seda siin kontrollida, sest... hinnangu andnute nimekirja kommentaaris ega artiklis ei salvestata. Noh, see tähendab, et töötame olemasolevate andmetega. Tulemuseks on "vastupidine" hinnang – näete, milliseid hinnanguid kasutajad _saavad_. Mis on põhimõtteliselt ka huvitav.

Töötlemine

Alustuseks traditsiooniline lahtiütlus. See hinnang, nagu kõik eelmised, on mitteametlik. Ma ei garanteeri, et ma kuskil viga ei teinud. Tehniliste üksikasjade vastu huvilistele antakse täpsem kood eelmises osas.

Nii et alustame. Analüüsimiseks võeti selle, 2019. aasta (mis pole veel lõppenud) kommentaarid. Kirjutamise ajal kirjutasid kasutajad 448533 комментария, on csv-faili suurus 288 MB. Võimas, muljetavaldav.

Kirjutamise aeg

Rühmitame kommentaarid tundide kaupa, jagades tööpäevad ja nädalavahetused eraldi.

Habrastatistika: lugejate kommentaaride analüüsimine

Siin ei huvita meid mitte absoluutväärtused, vaid suhtelised väärtused. Kui vaatate seda lihtsalt "nagu see on", selgub, et see onоSuurem osa kommentaare on kirjutatud tööajal 10-18 😉 Seevastu ajavööndeid siin ei arvestata, seega küsimus on veel lahtine.

Vaatame kommentaaride jaotust aasta lõikes:

Habrastatistika: lugejate kommentaaride analüüsimine

Ja ometi on see tööpäevadel selgelt näha - nädalane perioodilisus on selgelt nähtav, nii et võime üsna kindlalt väita, et inimesed loevad ja kommenteerivad Habrit töölt (aga see pole kindel).

Muide, tekkis mõte testida hüpoteesi, kas saadud miinuste või plusside arv erineb päevast või kellaajast, kuid seost ei õnnestunud leida - hinnangu andmise aega ei salvestata ja otsest seost kommentaari ajaga ei ole.

Liikmed

Muidugi ei tea ma saidi täpset kasutajate arvu. Kuid need, kes jätsid sel aastal vähemalt ühe kommentaari, osutusid ligikaudu 25000 inimesed.

Kasutajate jäetud sõnumite arvu graafik tundub üsna huvitav:

Habrastatistika: lugejate kommentaaride analüüsimine

Alguses ma ise seda ei uskunud, aga näis, et viga ei olnud. 5% kasutajatest jätab 60% sõnumitest. 10% - 74% kõigist sõnumitest (millest, tuletan meelde, sel aastal 450 tuhat). Enamik lihtsalt loeb saiti, jättes kommentaare väga harva või ei jätnud neid üldse (neid minu loendisse loomulikult ei lisatud).

Hinnangud

Liigume edasi statistika viimase ja kõige lõbusama osa – hinnangute – juurde. Privaatsuse huvides ei anna ma kasutajate täisnimesid, kes tahab, see arvan, et tunneb end ära.

Edasi kommentaaride arv selle aasta esiviisikus on VoXXXX (5 kommentaari), 3377xdXXXXX (0 kommentaari), strXXXX (3286 kommentaari), AmXXXX (3043 kommentaari) ja khXXXX (2897 kommentaari).

Edasi saadud hüvitiste arv, top 5 on hõivatud amXXXX (1395 kommentaari, hinnangud +3231/-309), tvXXXX (1544 kommentaari, hinnangud +3231/-97), WhuXXXX (921 kommentaari, hinnangud +2288/-13), MTXXXX (1328 kommentaari, +1383 /-7) ja amaXXXX (736 kommentaari, hinnang +1340/-16).

Edasi absoluutselt positiivne hinnang (mitte ükski negatiivselt hinnatud kommentaar) ülaosa hõivab Milfgard и Boomburum. Erandina esitan nende hüüdnimed täismahus, arvan, et nad väärivad seda.

Ka miinused on huvitavad. Üles kogutud miinuste arv sel aastal on neil siXX (473 plussi, 699 miinust), khXX (1915 plussi, 573 miinust) ja nicXXXXX (456 plussi, 487 miinust). Kuid nagu näete, on neil kasutajatel piisavalt positiivseid kommentaare. Kuid vastavalt absoluutne miinus Antitopic sisaldab vladXXXX (55 kommentaari, 84 miinust, 0 plussi), ekoXXXX (77 kommentaari, 92 miinust, 1 pluss) ja iMXXXX (225 kommentaari, 205 miinust, 12 plussi).

Järeldus

Ma ei jõudnud kõike planeeritut välja arvutada, aga loodan, et oli huvitav.

Nagu näete, võib isegi nii väikese väljade arvuga andmestik anda analüüsimiseks huvitavaid andmeid. Süveneda on veel palju, alates “sõnapilve” ehitamisest kuni tekstianalüüsini. Kui selgub huvitavaid tulemusi, siis need avaldatakse.

Allikas: www.habr.com

Lisa kommentaar