Habrastatistics: menganalisis komentar pembaca

Halo Habr. DI DALAM bagian sebelumnya Popularitas berbagai bagian situs dianalisis, dan pada saat yang sama muncul pertanyaan - data apa yang dapat diambil dari komentar pada artikel. Saya juga ingin menguji satu hipotesis, yang akan saya bahas di bawah.
Habrastatistics: menganalisis komentar pembaca

Datanya ternyata cukup menarik, kami juga berhasil membuat “peringkat mini” kecil dari para komentator. Lanjutan di bawah potongan.

Pengumpulan data

Untuk analisanya kami akan menggunakan data tahun ini 2019, apalagi saya sudah mendapatkan daftar artikel dalam bentuk csv. Yang tersisa hanyalah mengekstrak komentar dari setiap artikel; untungnya bagi kami, komentar tersebut disimpan di sana, dan tidak ada permintaan tambahan yang perlu dibuat.

Untuk menyorot komentar dari sebuah artikel, kode berikut sudah cukup:

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)

Ini memungkinkan kami mendapatkan daftar komentar yang terlihat seperti ini (nama panggilan dihapus karena alasan privasi):

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

Seperti yang Anda lihat, untuk setiap komentar kami bisa mendapatkan nama pengguna, tanggal, peringkat, dan teks sebenarnya. Mari kita lihat apa yang bisa kita peroleh dari ini.

Ngomong-ngomong, awalnya ide mengumpulkan peringkat sedikit berbeda - untuk melihat peringkat yang diberikan pengguna. Misalnya, Anda dapat melihat YouTube - bahkan video yang paling ideal, bahkan video yang tidak memuat informasi subjektif apa pun, murni untuk referensi atau rilis berita, masih mendapatkan sejumlah kekurangan. Hipotesisnya adalah ada pengguna yang secara klinis murni tidak menyukai semuanya sama sekali, mungkin serotonin tidak diproduksi di otak atau yang lainnya. Mungkin seseorang tidak perlu lagi duduk di Habré, tapi untuk mengobati depresi... Tapi ternyata, saya tidak bisa memeriksanya di sini, karena... daftar yang memberi rating tidak disimpan di komentar atau artikel. Artinya, kami akan bekerja dengan data yang tersedia. Hasilnya adalah peringkat “terbalik” - Anda dapat melihat peringkat apa yang _diterima_ oleh pengguna. Yang pada prinsipnya juga menarik.

pengolahan

Pertama-tama, penafian tradisional. Peringkat ini, seperti peringkat sebelumnya, tidak resmi. Saya tidak menjamin bahwa saya tidak melakukan kesalahan di mana pun. Bagi mereka yang tertarik dengan detail teknis, disediakan kode yang lebih detail di bagian sebelumnya.

Jadi mari kita mulai. Komentar untuk tahun ini, 2019 (yang belum berakhir), diambil untuk dianalisis. Pada saat penulisan, pengguna menulis 448533 комментария, ukuran file csv adalah 288MB. Kuat, mengesankan.

Waktu penulisan

Mari kelompokkan komentar berdasarkan jam, pisahkan hari kerja dan akhir pekan secara terpisah.

Habrastatistics: menganalisis komentar pembaca

Di sini kita tidak tertarik pada nilai absolut, tetapi pada nilai relatif. Kalau dilihat saja “sebagaimana adanya”, ternyata begituоSebagian besar komentar ditulis selama jam kerja dari jam 10 hingga 18 😉 Sebaliknya, zona waktu tidak diperhitungkan di sini, jadi pertanyaannya masih terbuka.

Mari kita lihat sebaran komentar sepanjang tahun:

Habrastatistics: menganalisis komentar pembaca

Namun hal ini terus berputar; lonjakan terlihat jelas pada hari kerja - periodisitas mingguan terlihat jelas, sehingga kita dapat mengatakan dengan keyakinan yang cukup tinggi bahwa orang-orang membaca dan mengomentari Habr dari tempat kerja (tetapi hal ini tidak pasti).

Ngomong-ngomong, ada ide untuk menguji hipotesis apakah jumlah minus atau plus yang diterima berbeda dari hari atau waktu, tetapi tidak mungkin menemukan hubungan - waktu pemberian peringkat tidak disimpan, dan tidak ada hubungan langsung dengan waktu komentar.

Anggota

Tentu saja, saya tidak tahu persis jumlah pengguna situs tersebut. Namun yang meninggalkan setidaknya satu komentar tahun ini ternyata kurang lebih Orang 25000.

Grafik jumlah pesan yang ditinggalkan pengguna terlihat cukup menarik:

Habrastatistics: menganalisis komentar pembaca

Awalnya saya sendiri tidak percaya, tapi sepertinya tidak ada kesalahan. 5% pengguna meninggalkan 60% pesan. 10% - 74% dari semua pesan (yang, izinkan saya mengingatkan Anda, tahun ini, 450 ribu). Mayoritas hanya membaca situsnya, sangat jarang meninggalkan komentar, atau tidak meninggalkannya sama sekali (tentu saja, komentar tersebut tidak termasuk dalam daftar saya).

Ratings

Mari beralih ke bagian statistik terakhir dan paling menyenangkan - peringkat. Demi alasan privasi, saya tidak akan memberikan nama panggilan lengkap para penggunanya, siapa pun yang mau, menurut saya, akan mengenali dirinya sendiri.

Pada jumlah komentar untuk tahun ini, 5 besar ditempati oleh VoXXXX (3377 komentar), 0xdXXXXX (3286 komentar), strXXXX (3043 komentar), AmXXXX (2897 komentar) dan khXXXX (2748 komentar).

Pada jumlah manfaat yang diterima, 5 teratas ditempati oleh amXXXX (1395 komentar, peringkat +3231/-309), tvXXXX (1544 komentar, peringkat +3231/-97), WhuXXXX (921 komentar, peringkat +2288/-13), MTXXXX (1328 komentar, +1383 /-7) dan amaXXXX (736 komentar, peringkat +1340/-16).

Pada peringkat positif mutlak (tidak seorangpun komentar yang dinilai negatif) bagian atas ditempati oleh penjaga milf и Boomburum. Sebagai pengecualian, saya sajikan nama panggilan mereka secara lengkap, menurut saya mereka pantas mendapatkannya.

Sisi negatifnya juga menarik. Atas oleh jumlah minus yang dikumpulkan untuk tahun ini ditempati oleh siXX (473 plus, 699 minus), khXX (1915 plus, 573 minus) dan nicXXXXX (456 plus, 487 minus). Namun seperti yang Anda lihat, pengguna ini mendapat cukup banyak komentar positif. Namun menurut minus mutlak Antitopiknya antara lain vladXXXX (55 komentar, 84 minus, 0 plus), ekoXXXX (77 komentar, 92 minus, 1 plus) dan iMXXXX (225 komentar, 205 minus, 12 plus).

Kesimpulan

Saya tidak dapat menghitung semua yang direncanakan, tapi saya harap ini menarik.

Seperti yang Anda lihat, bahkan kumpulan data dengan jumlah bidang yang sedikit pun dapat memberikan data yang menarik untuk dianalisis. Masih banyak yang harus digali, mulai dari membangun “awan kata” hingga analisis teks. Jika ada hasil menarik yang muncul, maka akan dipublikasikan.

Sumber: www.habr.com

Tambah komentar