Habrastatistikk: analysere leserkommentarer

Hei Habr. I forrige del Populariteten til ulike deler av nettstedet ble analysert, og samtidig oppsto spørsmålet - hvilke data kan trekkes ut fra kommentarer til artikler. Jeg ønsket også å teste én hypotese, som jeg vil diskutere nedenfor.
Habrastatistikk: analysere leserkommentarer

Dataene viste seg å være ganske interessante, vi klarte også å lage en liten "mini-rating" av kommentatorer. Fortsetter under snittet.

Datainnsamling

Til analyse vil vi bruke data for dette året, 2019, spesielt siden jeg allerede har mottatt en liste over artikler i csv-form. Alt som gjenstår er å trekke ut kommentarene fra hver artikkel, heldigvis for oss, de er lagret der, og ingen ytterligere forespørsler trenger å gjøres.

For å fremheve kommentarer fra en artikkel, er følgende kode tilstrekkelig:

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)

Dette lar oss få en liste over kommentarer som ser omtrent slik ut (kallenavn fjernet av personvernhensyn):

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

Som du kan se, for hver kommentar kan vi få brukernavnet, datoen, vurderingen og den faktiske teksten. La oss se hva vi kan få ut av dette.

Forresten, i utgangspunktet var ideen om å samle vurderinger litt annerledes - for å se hvilke vurderinger brukere gir. For eksempel kan du se på YouTube - selv den mest ideelle videoen, til og med en video som ikke inneholder noen subjektiv informasjon, rent for referanse eller en pressemelding, får fortsatt et visst antall minuser. Hypotesen var at det er brukere som rent klinisk ikke liker alt i det hele tatt, kanskje ikke serotonin produseres i hjernen eller noe annet. Kanskje en person ikke lenger trenger å sitte på Habré, men å behandle depresjon... Men som det viste seg, kan jeg ikke sjekke dette her, fordi... listen over de som ga vurderinger lagres ikke i kommentaren eller artikkelen. Vel, det vil si at vi skal jobbe med tilgjengelige data. Resultatet er en "omvendt" vurdering - du kan se hvilke vurderinger _mottar_ av brukere. Noe som i prinsippet også er interessant.

Processing

Til å begynne med en tradisjonell ansvarsfraskrivelse. Denne vurderingen, som alle tidligere, er uoffisiell. Jeg garanterer ikke at jeg ikke har gjort en feil noe sted. For de som er interessert i tekniske detaljer, er mer detaljert kode gitt i forrige del.

Så la oss komme i gang. Kommentarer for dette året, 2019 (som ikke er over ennå), ble tatt til analyse. I skrivende stund skrev brukerne 448533 kommentar, er størrelsen på csv-filen 288 MB. Kraftig, imponerende.

Skrivetid

La oss gruppere kommentarer etter time, og dele ukedager og helger separat.

Habrastatistikk: analysere leserkommentarer

Her er vi ikke interessert i absolutte verdier, men av relative. Hvis du bare ser "som den er", så viser det seg detоDe fleste kommentarene er skrevet i arbeidstiden fra 10 til 18 😉 På den annen side er det ikke tatt hensyn til tidssoner her, så spørsmålet er fortsatt åpent.

La oss se på fordelingen av kommentarer gjennom året:

Habrastatistikk: analysere leserkommentarer

Og likevel roterer det; en bølge er tydelig synlig på hverdager - den ukentlige periodisiteten er tydelig synlig, så vi kan si med ganske stor sikkerhet at folk leser og kommenterer Habr fra jobben (men dette er ikke sikkert).

Forresten, det var en idé om å teste hypotesen om antall mottatte minuser eller plusser avviker fra dagen eller klokkeslettet, men det var ikke mulig å finne et forhold - tidspunktet vurderingen ble gitt er ikke lagret, og det er ingen direkte sammenheng med tidspunktet for kommentaren.

Medlemmer

Selvfølgelig vet jeg ikke det nøyaktige antallet brukere på nettstedet. Men de som la minst én kommentar i år viste seg å være omtrentlig 25000 folk.

Grafen over antall meldinger etterlatt av brukere ser ganske interessant ut:

Habrastatistikk: analysere leserkommentarer

Først trodde jeg ikke på det selv, men det så ut til å ikke være noen feil. 5 % av brukerne legger igjen 60 % av meldingene. 10% - 74% av alle meldinger (hvorav, la meg minne deg, i år, 450 tusen). De fleste leser ganske enkelt nettstedet, legger igjen kommentarer svært sjelden, eller forlater dem ikke i det hele tatt (de var naturligvis ikke inkludert på listen min).

Rangeringer

La oss gå videre til den siste og morsomste delen av statistikken – rangeringer. Av hensyn til personvernet vil jeg ikke gi de fullstendige kallenavnene til brukerne, den som vil tror jeg vil kjenne seg igjen.

antall kommentarer for i år er de 5 beste okkupert av VoXXXX (3377 kommentarer), 0xdXXXXX (3286 kommentarer), strXXXX (3043 kommentarer), AmXXXX (2897 kommentarer) og khXXXX (2748 kommentarer).

antall mottatte ytelser, topp 5 er okkupert av amXXXX (1395 kommentarer, rangeringer +3231/-309), tvXXXX (1544 kommentarer, rangeringer +3231/-97), WhuXXXX (921 kommentarer, rangeringer +2288/-13), MTXXXX (1328 kommentarer, +1383 /-7) og amaXXXX (736 kommentarer, vurdering +1340/-16).

absolutt positiv vurdering (ikke en eneste negativt vurdert kommentar) toppen av toppen er okkupert av Milfgard и Boomburum. Som et unntak presenterer jeg kallenavnene deres i sin helhet, det synes jeg de fortjener.

Ulempene er også interessante. Øverst antall innsamlede minuser for i år er de okkupert av siXX (473 plusser, 699 minuser), khXX (1915 plusser, 573 minuser) og nicXXXXX (456 plusser, 487 minuser). Men som du kan se, har disse brukerne nok positive kommentarer. Men iflg absolutt minus Antitopicen inkluderer vladXXXX (55 kommentarer, 84 minuser, 0 plusser), ekoXXXX (77 kommentarer, 92 minuser, 1 pluss) og iMXXXX (225 kommentarer, 205 minuser, 12 plusser).

Konklusjon

Jeg klarte ikke å beregne alt planlagt, men jeg håper det var interessant.

Som du kan se, kan selv et datasett med et så lite antall felt gi interessante data for analyse. Det er fortsatt mye å grave i, fra å bygge en «ordsky» til tekstanalyse. Hvis det dukker opp noen interessante resultater, vil de bli publisert.

Kilde: www.habr.com

Legg til en kommentar