Habrastatistics: analiza comentariilor cititorilor

Salut Habr. ÎN partea anterioară A fost analizată popularitatea diferitelor secțiuni ale site-ului și, în același timp, a apărut întrebarea - ce date pot fi extrase din comentariile la articole. De asemenea, am vrut să testez o ipoteză, pe care o voi discuta mai jos.
Habrastatistics: analiza comentariilor cititorilor

Datele s-au dovedit a fi destul de interesante și am reușit să creăm un mic „mini-rating” al comentatorilor. A continuat sub tăietură.

Colectare de date

Pentru analiză vom folosi date pentru acest an, 2019, mai ales că am primit deja o listă de articole în formă csv. Rămâne doar să extragem comentariile din fiecare articol din fericire pentru noi, acestea sunt stocate acolo și nu trebuie făcute solicitări suplimentare;

Pentru a evidenția comentariile dintr-un articol, următorul cod este suficient:

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)

Acest lucru ne permite să obținem o listă de comentarii care arată cam așa (poreclele eliminate din motive de confidențialitate):

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

După cum puteți vedea, pentru fiecare comentariu putem obține numele de utilizator, data, evaluarea și textul real. Să vedem ce putem obține din asta.

Apropo, inițial, ideea de a colecta evaluări a fost puțin diferită - pentru a vedea ce evaluări dau utilizatorii. De exemplu, poți să te uiți pe YouTube - chiar și cel mai ideal videoclip, chiar și un videoclip care nu conține nicio informație subiectivă, doar pentru referință sau un comunicat de presă, câștigă totuși un anumit număr de minusuri. Ipoteza a fost că există utilizatori cărora, pur clinic, nu le place deloc totul, poate că serotonina nu este produsă în creier sau altceva. Poate că o persoană nu mai are nevoie să stea pe Habré, ci să trateze depresia... Dar după cum s-a dovedit, nu pot verifica asta aici, pentru că... lista celor care au dat rating nu este salvată în comentariu sau articol. Ei bine, adică vom lucra cu datele disponibile. Rezultatul este o evaluare „inversată” - puteți vedea ce evaluări _primesc_ de către utilizatori. Ceea ce, în principiu, este și interesant.

prelucrare

Pentru început, o declinare tradițională. Această evaluare, ca toate cele anterioare, este neoficială. Nu garantez că nu am greșit nicăieri. Pentru cei interesați de detalii tehnice, este furnizat un cod mai detaliat în partea anterioară.

Asadar, haideti sa începem. Comentariile pentru acest an, 2019 (care nu sa încheiat încă), au fost luate pentru analiză. La momentul scrierii, utilizatorii scriau 448533 комментария, dimensiunea fișierului csv este 288 MB. Puternic, impresionant.

Momentul scrierii

Să grupăm comentariile pe oră, împărțind zilele lucrătoare și weekendurile separat.

Habrastatistics: analiza comentariilor cititorilor

Aici nu ne interesează valorile absolute, ci cele relative. Dacă te uiți doar la ea „așa cum este”, atunci se dovedește căоMajoritatea comentariilor au fost scrise în timpul programului de lucru de la 10 la 18 😉 Pe de altă parte, aici nu se iau în calcul fusurile orare, așa că întrebarea este încă deschisă.

Să ne uităm la distribuția comentariilor de-a lungul anului:

Habrastatistics: analiza comentariilor cititorilor

Și totuși se rotește; o creștere este vizibilă în zilele lucrătoare - periodicitatea săptămânală este clar vizibilă, așa că putem spune cu o încredere destul de mare că oamenii citesc și comentează Habr de la serviciu (dar acest lucru nu este sigur).

Apropo, a existat o idee de a testa ipoteza dacă numărul de minusuri sau plusuri primite diferă de ziua sau ora din zi, dar nu a fost posibil să se găsească o relație - momentul în care a fost acordat ratingul nu este salvat și nu există nicio legătură directă cu momentul comentariului.

utilizatori

Desigur, nu știu numărul exact de utilizatori de pe site. Dar cei care au lăsat cel puțin un comentariu anul acesta s-au dovedit a fi aproximativ Oameni 25000.

Graficul numărului de mesaje lăsate de utilizatori arată destul de interesant:

Habrastatistics: analiza comentariilor cititorilor

La început nu am crezut, dar nu părea să fie nici o greșeală. 5% dintre utilizatori lasă 60% din mesaje. 10% - 74% din toate mesajele (dintre care, permiteți-mi să vă reamintesc, anul acesta, 450 de mii). Majoritatea citesc pur și simplu site-ul, lăsând comentarii foarte rar, sau nu le părăsesc deloc (acestea, desigur, nu au fost incluse în lista mea).

Calificative

Să trecem la ultima și cea mai distractivă parte a statisticilor - evaluările. Din motive de confidențialitate, nu voi da poreclele complete ale utilizatorilor, cine dorește, cred că se va recunoaște.

Pe numărul de comentarii pentru acest an, primele 5 sunt ocupate de VoXXXX (3377 comentarii), 0xdXXXX (3286 comentarii), strXXXX (3043 comentarii), AmXXXX (2897 comentarii) și khXXXX (2748 comentarii).

Pe numărul de prestații primite, primele 5 sunt ocupate de amXXXX (1395 comentarii, evaluări +3231/-309), tvXXXX (1544 comentarii, evaluări +3231/-97), WhuXXXX (921 comentarii, evaluări +2288/-13), MTXXXX (1328 comentarii, +1383 /-7) și amaXXXX (736 de comentarii, rating +1340/-16).

Pe rating absolut pozitiv (orice comentariu evaluat negativ) partea de sus a topului este ocupată de Milfgard и Boomburum. Prin excepție, le prezint în întregime poreclele, cred că merită.

Dezavantajele sunt și ele interesante. Top de numărul de minusuri colectate pentru acest an sunt ocupate de siXX (473 plusuri, 699 minusuri), khXX (1915 plusuri, 573 minusuri) si nicXXXXX (456 plusuri, 487 minusuri). Dar după cum puteți vedea, acești utilizatori au destule comentarii pozitive. Dar conform minus absolut Antitopicul include vladXXXX (55 de comentarii, 84 de minusuri, 0 plusuri), ekoXXXX (77 de comentarii, 92 de minusuri, 1 plus) și iMXXXX (225 de comentarii, 205 de minusuri, 12 plusuri).

Concluzie

Nu am reușit să calculez tot ce era planificat, dar sper că a fost interesant.

După cum puteți vedea, chiar și un set de date cu un număr atât de mic de câmpuri poate oferi date interesante pentru analiză. Mai sunt multe de cercetat, de la construirea unui „nor de cuvinte” până la analiza textului. Dacă apar rezultate interesante, acestea vor fi publicate.

Sursa: www.habr.com

Adauga un comentariu