Habrastatistics: ανάλυση των σχολίων των αναγνωστών

Γεια σου Χαμπρ. ΣΕ προηγούμενο μέρος Αναλύθηκε η δημοτικότητα διαφόρων ενοτήτων του ιστότοπου και ταυτόχρονα προέκυψε το ερώτημα - ποια δεδομένα μπορούν να εξαχθούν από σχόλια σε άρθρα. Ήθελα επίσης να δοκιμάσω μια υπόθεση, την οποία θα συζητήσω παρακάτω.
Habrastatistics: ανάλυση των σχολίων των αναγνωστών

Τα δεδομένα αποδείχθηκαν αρκετά ενδιαφέροντα· καταφέραμε επίσης να δημιουργήσουμε μια μικρή «μικρή βαθμολογία» σχολιαστών. Συνέχισε κάτω από το κόψιμο.

Συλλογή δεδομένων

Για ανάλυση, θα χρησιμοποιήσουμε δεδομένα για φέτος, 2019, ειδικά επειδή έχω ήδη λάβει μια λίστα άρθρων σε μορφή csv. Το μόνο που μένει είναι να εξαγάγουμε τα σχόλια από κάθε άρθρο· ευτυχώς για εμάς, αποθηκεύονται εκεί και δεν χρειάζεται να υποβληθούν επιπλέον αιτήματα.

Για να επισημάνετε σχόλια από ένα άρθρο, αρκεί ο ακόλουθος κώδικας:

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)

Αυτό μας επιτρέπει να λάβουμε μια λίστα σχολίων που μοιάζει με αυτό (τα ψευδώνυμα αφαιρέθηκαν για λόγους απορρήτου):

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

Όπως μπορείτε να δείτε, για κάθε σχόλιο μπορούμε να λάβουμε το όνομα χρήστη, την ημερομηνία, τη βαθμολογία και το πραγματικό κείμενο. Ας δούμε τι μπορούμε να πάρουμε από αυτό.

Παρεμπιπτόντως, αρχικά, η ιδέα της συλλογής αξιολογήσεων ήταν λίγο διαφορετική - για να δούμε τι βαθμολογίες δίνουν οι χρήστες. Για παράδειγμα, μπορείτε να κοιτάξετε στο YouTube - ακόμα και το πιο ιδανικό βίντεο, ακόμα και ένα βίντεο που δεν περιέχει υποκειμενικές πληροφορίες, καθαρά για αναφορά ή ένα δελτίο ειδήσεων, εξακολουθεί να κερδίζει ορισμένα μειονεκτήματα. Η υπόθεση ήταν ότι υπάρχουν χρήστες που, καθαρά κλινικά, δεν τους αρέσουν τα πάντα, ίσως δεν παράγεται σεροτονίνη στον εγκέφαλο ή κάτι άλλο. Ίσως ένα άτομο να μην χρειάζεται πλέον να κάθεται στο Habré, αλλά να θεραπεύει την κατάθλιψη... Αλλά όπως αποδείχθηκε, δεν μπορώ να το ελέγξω εδώ, γιατί... η λίστα με αυτούς που έδωσαν βαθμολογίες δεν αποθηκεύεται στο σχόλιο ή στο άρθρο. Λοιπόν, δηλαδή, θα δουλέψουμε με τα διαθέσιμα δεδομένα. Το αποτέλεσμα είναι μια "αντίστροφη" βαθμολογία - μπορείτε να δείτε ποιες αξιολογήσεις _λαμβάνουν_ από τους χρήστες. Το οποίο, κατ' αρχήν, είναι επίσης ενδιαφέρον.

Επεξεργασία

Αρχικά, μια παραδοσιακή αποποίηση ευθυνών. Αυτή η βαθμολογία, όπως όλες οι προηγούμενες, είναι ανεπίσημη. Δεν εγγυώμαι ότι δεν έκανα λάθος πουθενά. Για όσους ενδιαφέρονται για τεχνικές λεπτομέρειες, παρέχεται πιο αναλυτικός κωδικός στο προηγούμενο μέρος.

Ας ξεκινήσουμε λοιπόν. Τα σχόλια για το τρέχον έτος, 2019 (που δεν έχει τελειώσει ακόμα), ελήφθησαν για ανάλυση. Τη στιγμή της σύνταξης, οι χρήστες έγραψαν 448533 комментария, το μέγεθος του αρχείου csv είναι 288 MB. Δυνατό, εντυπωσιακό.

Ώρα συγγραφής

Ας ομαδοποιήσουμε τα σχόλια ανά ώρα, χωρίζοντας τις καθημερινές και τα Σαββατοκύριακα ξεχωριστά.

Habrastatistics: ανάλυση των σχολίων των αναγνωστών

Εδώ δεν μας ενδιαφέρουν οι απόλυτες αξίες, αλλά οι σχετικές. Αν το δεις απλώς «όπως είναι», τότε αποδεικνύεται ότιоΤα περισσότερα σχόλια γράφτηκαν κατά τις εργάσιμες ώρες από τις 10 έως τις 18 😉 Από την άλλη πλευρά, οι ζώνες ώρας δεν λαμβάνονται υπόψη εδώ, οπότε το ερώτημα είναι ακόμα ανοιχτό.

Ας δούμε την κατανομή των σχολίων κατά τη διάρκεια του έτους:

Habrastatistics: ανάλυση των σχολίων των αναγνωστών

Κι όμως περιστρέφεται· μια απότομη αύξηση είναι σαφώς ορατή τις καθημερινές - η εβδομαδιαία περιοδικότητα είναι σαφώς ορατή, επομένως μπορούμε να πούμε με αρκετά μεγάλη σιγουριά ότι οι άνθρωποι διαβάζουν και σχολιάζουν το Habr από τη δουλειά (αλλά αυτό δεν είναι σίγουρο).

Παρεμπιπτόντως, υπήρχε μια ιδέα να ελεγχθεί η υπόθεση εάν ο αριθμός των μείον ή των θετικών που ελήφθησαν διαφέρει από την ημέρα ή την ώρα της ημέρας, αλλά δεν ήταν δυνατό να βρεθεί μια σχέση - η ώρα που δόθηκε η βαθμολογία δεν αποθηκεύεται και δεν υπάρχει άμεση σχέση με την ώρα του σχολίου.

Μέλη

Φυσικά, δεν γνωρίζω τον ακριβή αριθμό των χρηστών στον ιστότοπο. Όμως όσοι άφησαν τουλάχιστον ένα σχόλιο φέτος αποδείχθηκαν περίπου 25000 άνθρωποι.

Το γράφημα του αριθμού των μηνυμάτων που αφήνουν οι χρήστες φαίνεται αρκετά ενδιαφέρον:

Habrastatistics: ανάλυση των σχολίων των αναγνωστών

Στην αρχή δεν το πίστευα ο ίδιος, αλλά δεν φαινόταν να υπάρχει λάθος. Το 5% των χρηστών αφήνει το 60% των μηνυμάτων. 10% - 74% όλων των μηνυμάτων (εκ των οποίων, να θυμίσω, φέτος, 450 χιλιάδες). Η πλειοψηφία απλώς διάβαζε τον ιστότοπο, αφήνοντας σχόλια πολύ σπάνια ή δεν τα αφήνει καθόλου (αυτά, φυσικά, δεν συμπεριλήφθηκαν στη λίστα μου).

Βαθμολογίες

Ας περάσουμε στο τελευταίο και πιο διασκεδαστικό κομμάτι των στατιστικών - βαθμολογίες. Για λόγους απορρήτου, δεν θα δώσω τα πλήρη ψευδώνυμα των χρηστών, όποιος θέλει, νομίζω, θα αναγνωρίσει τον εαυτό του.

Επί αριθμός σχολίων για φέτος, οι 5 κορυφαίοι καταλαμβάνονται από τους VoXXXX (3377 σχόλια), 0xdXXXXX (3286 σχόλια), strXXXX (3043 σχόλια), AmXXXX (2897 σχόλια) και khXXXX (2748 σχόλια).

Επί αριθμός των παροχών, οι πρώτες 5 καταλαμβάνονται από amXXXX (1395 σχόλια, βαθμολογίες +3231/-309), tvXXXX (1544 σχόλια, αξιολογήσεις +3231/-97), WhuXXXX (921 σχόλια, αξιολογήσεις +2288/-13), MTXXXX (1328 σχόλια, +1383 /-7) και amaXXXX (736 σχόλια, βαθμολογία +1340/-16).

Επί απόλυτη θετική βαθμολογία (όχι μόνο σχόλιο με αρνητική βαθμολογία) η κορυφή της κορυφής καταλαμβάνεται από Μίλφγκαρντ и Μπουμπουρούμ. Κατ' εξαίρεση παρουσιάζω τα παρατσούκλια τους αναλυτικά, νομίζω ότι το αξίζουν.

Τα μειονεκτήματα είναι επίσης ενδιαφέροντα. Πάνω από αριθμός μείον που συλλέχθηκαν για φέτος καταλαμβάνονται από siXX (473 συν, 699 μείον), khXX (1915 συν, 573 μείον) και nicXXXXX (456 συν, 487 μείον). Αλλά όπως μπορείτε να δείτε, αυτοί οι χρήστες έχουν αρκετά θετικά σχόλια. Αλλά σύμφωνα με απόλυτο μείον Το αντίθετο περιλαμβάνει vladXXXX (55 σχόλια, 84 μείον, 0 συν), ekoXXXX (77 σχόλια, 92 μείον, 1 συν) και iMXXX (225 σχόλια, 205 μείον, 12 συν).

Συμπέρασμα

Δεν μπόρεσα να υπολογίσω όλα τα προγραμματισμένα, αλλά ελπίζω να ήταν ενδιαφέρον.

Όπως μπορείτε να δείτε, ακόμη και ένα σύνολο δεδομένων με τόσο μικρό αριθμό πεδίων μπορεί να παρέχει ενδιαφέροντα δεδομένα για ανάλυση. Υπάρχουν ακόμη πολλά να σκάψουμε, από τη δημιουργία ενός «σύννεφου λέξεων» μέχρι την ανάλυση κειμένου. Εάν προκύψουν ενδιαφέροντα αποτελέσματα, θα δημοσιευθούν.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο