Hai Habr.
Pada bagian
sebelumnya , pesan-pesan pengguna situs ini dianalisis, yang menyebabkan diskusi yang agak hidup tentang topik berbagai parameter (jumlah pesan, peringkat, "karma", dll.). Pertanyaan-pertanyaan semacam itu telah terakumulasi cukup untuk membuat bagian kedua.

Mereka yang tertarik, berapa lama diskusi terbesar dalam komentar untuk tahun ini, apa yang bisa menjadi "karma" maksimum dan minimum untuk pengguna, dan statistik lainnya, silakan, di bawah cat.
Pengumpulan data
Untuk mulai dengan, saya harus melengkapi parser sehingga akan mengumpulkan lebih banyak data. Informasi tentang peringkat pesan dan posisi pesan di utas sudah dalam HTML, tetapi untuk mendapatkan "karma" dari pengguna, permintaan tambahan harus dibuat. Tentu saja, nilai-nilai di-cache sehingga untuk pengguna yang sama tidak meminta data berkali-kali.
Dataset yang diperbarui sekarang terlihat seperti ini (nama panggilan pengguna dihapus):
https://habr.com/ru/post/322900/,comment_19707920,comment_19706258,UserXXXX,karma:112.2,answers:1,2019-02-04 20:26:00,rating:1,up:1,down:0, ?
https://habr.com/ru/company/mailru/blog/351212/,comment_19794710,comment_19794310,UserXXXX,karma:-10.0,answers:1,2019-02-23 18:16:00,rating:3,up:5,down:-2,
...
Dari bidang tambahan, bidang jawaban (jumlah jawaban), karma pengguna, serta peringkat positif dan negatif ditambahkan.
Fungsi mendapatkan "karma" dengan nama panggilan pengguna, misalnya, terlihat seperti ini:
def get_karma(user: str): data_html = get_as_str("https://habr.com/ru/users/%s/" % user) karma = data_html.find_between('info/help/karma/', '</a>').find_between('stacked-counter__value', '/div>').find_between('>', '<').replace(",", ".").replace('β', '-') return float(karma) if len(karma) > 0 else 0.0
Seperti yang Anda lihat, semuanya cukup sederhana, tanpa ilmu roket. Kami juga harus berterima kasih kepada programmer Habr untuk kode HTML yang jelas dan nyaman untuk penguraian.
Ukuran file CSV yang dihasilkan untuk 2019 ini adalah 334 MB. Anda dapat memulai analisis. Sebelum memulai, saya mengingatkan Anda bahwa semua data yang dipublikasikan terbuka dan terbuka, mereka juga diindeks oleh mesin pencari. Saya tidak punya informasi orang dalam, semuanya diambil dari halaman situs ini.
Karma
Seperti yang ditunjukkan bagian sebelumnya, "pertanyaan karma" adalah yang paling menarik, jadi mari kita mulai dengan itu. Seperti yang Anda ketahui, "karma" adalah atribut dari setiap pengguna aktif situs ini, peserta dapat memilih untuk menambah atau menguranginya. Terus terang, saya tidak pernah bertanya tentang cara kerjanya dan batasan apa yang diberikannya, jadi saya hanya akan memberikan data tanpa komentar khusus.
Secara total, di situs pada saat mengumpulkan peringkat,
25.109 pengguna adalah mereka yang setidaknya sekali meninggalkan setidaknya satu komentar. Dari jumlah tersebut, 9973 pengguna (39%) memiliki
nol karma . 12346 pengguna (49%) memiliki
karma positif , di mana 5384 pengguna (21%) memiliki
karma <= 4 dan
> 40 = karma (tingkat ini memungkinkan Anda untuk berpartisipasi dalam "program hadiah" dan menerima pembayaran untuk artikel) memiliki 1.522 pengguna (6 %). 2790 pengguna (11%) memiliki
karma negatif .
Secara grafis, bagian utama dari distribusi terlihat seperti ini:

Vertikal - jumlah pengguna dengan karma ini. Grafik dipotong di atas, sebagai pengguna dengan nol karma maksimum (9973 melawan 2570 dengan "karma" 1). Tidak ada sedikit pengguna yang βberpikiranβ, tetapi jadwalnya masih bergeser ke nilai plus, dan itu menyenangkan. Seberapa tinggi dan rendah karma itu?
Peringkat 10 karma
teratas ditempati oleh
Zelenyikot (+1509.2),
Milfgard (+1471.0),
m1rko (+1039.5),
PatientZero (+986.0),
Boomburum (+881.9),
ValdikSS (+873.5),
tangro (+802.5),
lozga (+764.7), dan
DIHALT (696.1). Saya pikir mereka bisa selamat - pekerjaan bagus, dudes :) Jika saya merindukan seseorang - menulis dalam pesan pribadi, saya akan menambahkannya secara manual.
By the way, ternyata, ada kesalahan dalam fungsi perhitungan karmareiting saya - tidak benar memproses nilai lebih dari 1000 (Habr menambahkan spasi ke nomor, saya tidak tahu ini), tetapi situasinya jarang, dan saya tidak menyadarinya segera.
Mereka mengambil Antitope-10 oleh karma ... tidak, saya mungkin tidak akan memberikan nama julukan mereka agar tidak membuat pengguna seperti itu sebagai "iklan", yang tertarik, dapat mengemudi dalam data dari tangkapan layar di bawah spoiler. Tentu saja, karma negatif di situs hanya mengatakan bahwa seseorang mengekspresikan pendapat yang tidak populer di situs ini, dan tidak mengatakan apa pun tentang kualitas pribadinya, sehingga mereka yang jatuh ke dalam βantitopβ diminta untuk tidak tersinggung.
Antitope 10 tentang karma Pesan
Dalam pesan Anda juga dapat menemukan banyak hal menarik.
5 pesan teratas masing-masing berukuran
26 ,
17 ,
16 ,
15 dan
14 KB.
Sangat menarik untuk melihat distribusi dalam bentuk grafis:

Seperti yang Anda lihat, puncaknya jatuh pada pesan sekitar 100 karakter.
Peringkat
Pesan yang
diberi peringkat paling
positif :
+218 ,
+144 ,
+141 ,
+133 dan
+124 .
Pesan yang
diberi peringkat paling
negatif adalah
-248 ,
-170 ,
-163 ,
-131 dan
-114 .
Sangat menarik bahwa distribusi jumlah pesan menurut peringkat kira-kira mirip dengan distribusi "karma" - ada evaluasi pesan positif dan negatif, tetapi ada lebih banyak pesan "positif". Yang lagi, tidak bisa tidak bersuka cita.
Diskusi
Pertanyaan menarik berikutnya adalah menemukan utas terpanjang di antara pesan-pesan. Ternyata cukup sederhana untuk melakukan ini - setiap pesan dalam HTML memiliki pengidentifikasi unik, ada juga parameter data-parent_id, sisanya, seperti kata mereka, adalah masalah teknis.
Jadi,
potongan diskusi terpanjang pada tahun 2019:
619 jawaban ,
618 jawaban ,
614 jawaban ,
556 jawaban dan
553 jawaban . Menariknya, 4 dari 5 pesan yang menyebabkan utas ini ditulis oleh pengguna dengan karma kurang dari -20.
Kelompokkan komentar sesuai dengan jumlah tanggapannya:

Vertikal - jumlah posting untuk tahun ini. Sebagian besar komentar (41% atau 183000) dibiarkan tanpa respons sama sekali, 75 ribu komentar memiliki 1 jawaban, distribusi lebih lanjut dapat dilihat pada gambar.
Kesimpulan
Pada ini saya akan menyelesaikan topik "habrastatistics" hingga Januari - pada akhir tahun peringkat akhir dari artikel terbaik 2019 akan diterbitkan, mungkin ada beberapa pola menarik lainnya.
Saya harap itu menarik. Jika saya lupa seseorang - tulis, koreksi.