Habrastatistica: analisi dei commenti dei lettori

Ciao Habr. IN sezione precedente È stata analizzata la popolarità di varie sezioni del sito e allo stesso tempo è sorta la domanda: quali dati possono essere estratti dai commenti agli articoli. Volevo anche testare un’ipotesi, di cui parlerò di seguito.
Habrastatistica: analisi dei commenti dei lettori

I dati si sono rivelati piuttosto interessanti; siamo anche riusciti a creare un piccolo “mini-rating” di commentatori. Continua sotto il taglio.

Raccolta dati

Per l'analisi utilizzeremo i dati di quest'anno, 2019, soprattutto perché ho già ricevuto un elenco di articoli in formato CSV. Non resta che estrarre i commenti da ogni articolo; per nostra fortuna, sono archiviati lì e non è necessario fare ulteriori richieste.

Per evidenziare i commenti di un articolo è sufficiente il seguente codice:

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)

Questo ci consente di ottenere un elenco di commenti simile a questo (soprannomi rimossi per motivi di privacy):

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

Come puoi vedere, per ogni commento possiamo ottenere il nome utente, la data, la valutazione e il testo vero e proprio. Vediamo cosa possiamo ottenere da questo.

A proposito, inizialmente l'idea di raccogliere valutazioni era leggermente diversa: vedere quali valutazioni danno gli utenti. Ad esempio, puoi guardare YouTube: anche il video più ideale, anche un video che non contiene alcuna informazione soggettiva, puramente di riferimento o di comunicato stampa, presenta comunque un certo numero di svantaggi. L'ipotesi era che ci siano utenti a cui, dal punto di vista puramente clinico, non piace tutto, forse la serotonina non viene prodotta nel cervello o qualcos'altro. Forse una persona non ha più bisogno di sedersi su Habré, ma di curare la depressione... Ma in realtà non posso verificarlo qui, perché... l'elenco di coloro che hanno espresso voti non viene salvato nel commento o nell'articolo. Bene, cioè lavoreremo con i dati disponibili. Il risultato è una valutazione "inversa": puoi vedere quali valutazioni _ricevono_ dagli utenti. Il che, in linea di principio, è anche interessante.

lavorazione

Per cominciare, un tradizionale disclaimer. Questa valutazione, come tutte le precedenti, non è ufficiale. Non garantisco di non aver commesso errori da nessuna parte. Per chi è interessato ai dettagli tecnici, viene fornito un codice più dettagliato nella parte precedente.

Quindi iniziamo. I commenti per quest’anno, il 2019 (che non è ancora finito), sono stati presi per l’analisi. Al momento della stesura di questo articolo, gli utenti hanno scritto 448533 commento, la dimensione del file CSV è 288 MB. Potente, impressionante.

Tempo di scrittura

Raggruppiamo i commenti per ora, dividendo separatamente i giorni feriali e i fine settimana.

Habrastatistica: analisi dei commenti dei lettori

Qui non ci interessano i valori assoluti, ma quelli relativi. Se lo guardi "così com'è", si scopre che è cosìоLa maggior parte dei commenti sono stati scritti durante l'orario di lavoro, dalle 10 alle 18 😉 Qui invece non vengono presi in considerazione i fusi orari, quindi la questione è ancora aperta.

Diamo un'occhiata alla distribuzione dei commenti durante l'anno:

Habrastatistica: analisi dei commenti dei lettori

Eppure ruota; un'impennata è chiaramente visibile nei giorni feriali - la periodicità settimanale è chiaramente visibile, quindi possiamo dire con una sicurezza abbastanza elevata che le persone leggono e commentano Habr dal lavoro (ma questo non è certo).

A proposito, c'era l'idea di verificare l'ipotesi se il numero di vantaggi o svantaggi ricevuti differisse dal giorno o dall'ora del giorno, ma non è stato possibile trovare una relazione: l'ora in cui è stata assegnata la valutazione non viene salvata e non esiste alcun collegamento diretto con l'ora del commento.

Membri

Ovviamente non conosco il numero esatto di utenti del sito. Ma quelli che hanno lasciato almeno un commento quest'anno si sono rivelati approssimativi persone 25000.

Il grafico del numero di messaggi lasciati dagli utenti sembra piuttosto interessante:

Habrastatistica: analisi dei commenti dei lettori

All’inizio non ci credevo anch’io, ma sembrava che non ci fossero errori. Il 5% degli utenti lascia il 60% dei messaggi. Dal 10% al 74% del totale dei messaggi (di cui, lo ricordo, quest'anno, 450mila). La maggior parte si limita a leggere il sito, lasciando commenti molto raramente o non lasciandoli affatto (questi, naturalmente, non erano inclusi nella mia lista).

Valutazioni

Passiamo all'ultima e più divertente parte delle statistiche: le valutazioni. Per motivi di privacy non fornirò i nickname completi degli utenti, chiunque vorrà, credo, si riconoscerà.

Su numero di commenti per quest'anno, i primi 5 sono occupati da VoXXXX (3377 commenti), 0xdXXXX (3286 commenti), strXXXX (3043 commenti), AmXXXX (2897 commenti) e khXXXX (2748 commenti).

Su numero di benefici ricevuti, i primi 5 sono occupati da amXXXX (1395 commenti, valutazioni +3231/-309), tvXXXX (1544 commenti, valutazioni +3231/-97), WhuXXXX (921 commenti, valutazioni +2288/-13), MTXXXX (1328 commenti, +1383 /-7) e amaXXXX (736 commenti, voto +1340/-16).

Su voto assolutamente positivo (qualsiasi commento con valutazione negativa) la parte superiore della parte superiore è occupata da Milgard и Boomburum. In via eccezionale presento i loro soprannomi per intero, penso che se lo meritino.

Interessanti anche gli aspetti negativi. Superiore numero di svantaggi raccolti per quest'anno sono occupati da seiXX (473 più, 699 meno), khXX (1915 più, 573 meno) e nicXXXXX (456 più, 487 meno). Ma come puoi vedere, questi utenti hanno abbastanza commenti positivi. Ma secondo meno assoluto L'antitopico include vladXXXX (55 commenti, 84 meno, 0 più), ekoXXXX (77 commenti, 92 meno, 1 più) e iMXXXX (225 commenti, 205 meno, 12 più).

conclusione

Non sono riuscito a calcolare tutto ciò che avevo pianificato, ma spero che sia stato interessante.

Come puoi vedere, anche un set di dati con un numero così ridotto di campi può fornire dati interessanti per l'analisi. C’è ancora molto da approfondire, dalla costruzione di una “nuvola di parole” all’analisi del testo. Se emergeranno risultati interessanti, verranno pubblicati.

Fonte: habr.com

Aggiungi un commento