Habrastatistics: analysera läsarens kommentarer

Hej Habr. I föregående del Populariteten för olika delar av webbplatsen analyserades, och samtidigt uppstod frågan - vilken data kan extraheras från kommentarer på artiklar. Jag ville också testa en hypotes, som jag kommer att diskutera nedan.
Habrastatistics: analysera läsarens kommentarer

Uppgifterna visade sig vara ganska intressanta, och vi kunde också sammanställa en liten "mini-rating" av kommentatorer. Fortsatte under snittet.

Datainsamling

För analys kommer vi att använda data för i år, 2019, speciellt eftersom jag redan har fått en lista med artiklar i csv-form. Allt som återstår är att extrahera kommentarerna från varje artikel, lyckligtvis för oss, de lagras där, och inga ytterligare förfrågningar behöver göras.

För att markera kommentarer från en artikel räcker följande kod:

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)

Detta gör att vi kan få en lista med kommentarer som ser ut ungefär så här (smeknamn har tagits bort av integritetsskäl):

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 kan vi för varje kommentar få användarnamn, datum, betyg och den faktiska texten. Låt oss se vad vi kan få ut av detta.

Förresten, initialt var idén om att samla betyg lite annorlunda - för att se vilka betyg användare ger. Till exempel kan du titta på YouTube - även den mest idealiska videon, även en video som inte innehåller någon subjektiv information, enbart för referens eller ett pressmeddelande, får fortfarande ett visst antal minus. Hypotesen var att det finns användare som rent kliniskt inte gillar allt, kanske serotonin inte produceras i hjärnan eller något annat. Kanske behöver en person inte längre sitta på Habré, utan för att behandla depression... Men som det visade sig, jag kan inte kontrollera detta här, eftersom... listan över de som gett betyg sparas inte i kommentaren eller artikeln. Jo, det vill säga, vi kommer att arbeta med tillgänglig data. Resultatet är ett "omvänt" betyg - du kan se vilka betyg _får_ av användare. Vilket i princip också är intressant.

Bearbetning

Till att börja med en traditionell ansvarsfriskrivning. Detta betyg, liksom alla tidigare, är inofficiellt. Jag garanterar inte att jag inte gjorde ett misstag någonstans. För den som är intresserad av tekniska detaljer tillhandahålls mer detaljerad kod i föregående del.

Så låt oss börja. Kommentarer för detta år, 2019 (som inte är över ännu), togs för analys. I skrivande stund skrev användarna 448533 kommentar, storleken på csv-filen är 288 MB. Kraftfull, imponerande.

Skrivande

Låt oss gruppera kommentarer per timme och dela upp vardagar och helger separat.

Habrastatistics: analysera läsarens kommentarer

Här är vi inte intresserade av absoluta värden, utan av relativa. Om man bara tittar på det "som det är", så visar det sigоDe flesta kommentarerna skrevs på arbetstid från 10 till 18 😉 Däremot tas inte hänsyn till tidszoner här, så frågan är fortfarande öppen.

Låt oss titta på fördelningen av kommentarer under året:

Habrastatistics: analysera läsarens kommentarer

Och ändå roterar det; en ökning är tydligt synlig på vardagar - den veckovisa periodiciteten är tydligt, så vi kan säga med ganska hög tillförsikt att folk läser och kommenterar Habr från jobbet (men detta är inte säkert).

Förresten, det fanns en idé att testa hypotesen om antalet mottagna minus eller plus skiljer sig från dagen eller tiden på dygnet, men det gick inte att hitta en relation - tiden som betyget gavs sparas inte, och det finns inget direkt samband med tidpunkten för kommentaren.

Medlemmar

Naturligtvis vet jag inte det exakta antalet användare på sajten. Men de som lämnat minst en kommentar i år visade sig vara ungefär 25000 människor.

Grafen över antalet meddelanden som lämnats av användare ser ganska intressant ut:

Habrastatistics: analysera läsarens kommentarer

Först trodde jag inte på det själv, men det verkade inte vara något misstag. 5 % av användarna lämnar 60 % av meddelandena. 10% - 74% av alla meddelanden (varav, låt mig påminna dig, i år, 450 tusen). Majoriteten läser helt enkelt sidan, lämnar kommentarer väldigt sällan eller lämnar dem inte alls (de var naturligtvis inte med på min lista).

Betyg

Låt oss gå vidare till den sista och roligaste delen av statistiken – betyg. Av integritetsskäl kommer jag inte att ge användarnas fullständiga smeknamn, den som vill tror jag känner igen sig.

antal kommentarer för i år är de fem bästa ockuperade av VoXXXX (5 kommentarer), 3377xdXXXXX (0 kommentarer), strXXXX (3286 kommentarer), AmXXXX (3043 kommentarer) och khXXXX (2897 kommentarer).

antal erhållna förmåner, topp 5 är upptagna av amXXXX (1395 kommentarer, betyg +3231/-309), tvXXXX (1544 kommentarer, betyg +3231/-97), WhuXXXX (921 kommentarer, betyg +2288/-13), MTXXXX (1328 kommentarer, +1383 /-7) och amaXXXX (736 kommentarer, betyg +1340/-16).

absolut positivt betyg (ingen negativt betygsatt kommentar) är toppen av toppen upptagen av Milfgard и Boomburum. Som ett undantag presenterar jag deras smeknamn i sin helhet, jag tycker att de förtjänar det.

Nackdelarna är också intressanta. Överst antal insamlade minus för detta år är de upptagna av siXX (473 plus, 699 minus), khXX (1915 plus, 573 minus) och nicXXXXX (456 plus, 487 minus). Men som du kan se har dessa användare tillräckligt med positiva kommentarer. Men enligt absolut minus Antitopic inkluderar vladXXXX (55 kommentarer, 84 minus, 0 plus), ekoXXXX (77 kommentarer, 92 minus, 1 plus) och iMXXXX (225 kommentarer, 205 minus, 12 plus).

Slutsats

Jag kunde inte räkna ut allt planerat, men jag hoppas att det var intressant.

Som du kan se kan även en datauppsättning med ett så litet antal fält ge intressanta data för analys. Det finns fortfarande mycket att gräva i, från att bygga ett "ordmoln" till textanalys. Om några intressanta resultat dyker upp kommer de att publiceras.

Källa: will.com

Lägg en kommentar