Habrastatistika: o'quvchilarning sharhlarini tahlil qilish

Salom Xabr. IN oldingi qism Saytning turli bo'limlarining mashhurligi tahlil qilindi va shu bilan birga savol tug'ildi - maqolalarga sharhlardan qanday ma'lumotlarni olish mumkin. Men ham bir gipotezani sinab ko'rmoqchi edim, uni quyida muhokama qilaman.
Habrastatistika: o'quvchilarning sharhlarini tahlil qilish

Ma'lumotlar juda qiziqarli bo'lib chiqdi, biz sharhlovchilarning kichik "mini-reytingini" yaratishga muvaffaq bo'ldik. Kesish ostida davom etdi.

Ma'lumotlar yig'ish

Tahlil qilish uchun biz bu yil, 2019 yil uchun ma'lumotlardan foydalanamiz, ayniqsa men allaqachon csv shaklida maqolalar ro'yxatini olganim uchun. Har bir maqoladan sharhlarni olish qoladi, xayriyatki, ular o'sha erda saqlanadi va qo'shimcha so'rovlar talab qilinmaydi.

Maqoladagi sharhlarni ajratib ko'rsatish uchun quyidagi kod kifoya qiladi:

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)

Bu bizga shunday ko'rinadigan sharhlar ro'yxatini olish imkonini beradi (maxfiylik sababli taxalluslar olib tashlandi):

xxxxxxx,2019-02-06 11:50:00,0,А ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ?
xxxxxxx-02-24 16:15:00,+1,ПобольшС Ρ‡ΠΈΡ‚Π°ΠΉΡ‚Π΅ нСзависимыС ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ источники Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ‚Π°ΠΊΠΈΡ… вопросов Π½Π΅ Π±Ρ‹Π»ΠΎ.
xxxxxxx,2019-02-23 20:15:00,–5,А Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π² плюсС ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ

Ko'rib turganingizdek, har bir sharh uchun foydalanuvchi nomi, sana, reyting va haqiqiy matnni olishimiz mumkin. Keling, bundan nimani olishimiz mumkinligini ko'rib chiqaylik.

Aytgancha, dastlab reytinglarni yig'ish g'oyasi biroz boshqacha edi - foydalanuvchilar qanday baho berishlarini ko'rish uchun. Masalan, siz YouTube-ga qarashingiz mumkin - hatto eng ideal video, hatto hech qanday sub'ektiv ma'lumotga ega bo'lmagan video, faqat ma'lumot uchun yoki yangilik uchun, hali ham ma'lum miqdordagi minuslarga ega. Gipoteza shuni ko'rsatdiki, faqat klinik jihatdan hamma narsani yoqtirmaydigan foydalanuvchilar bor, ehtimol serotonin miyada yoki boshqa biror narsada ishlab chiqarilmaydi. Ehtimol, odam endi HabrΓ©ga o'tirishi kerak emas, balki depressiyani davolash uchun ... Lekin ma'lum bo'lishicha, men buni bu erda tekshira olmayman, chunki ... baho berganlar ro'yxati sharh yoki maqolada saqlanmaydi. Xo'sh, ya'ni biz mavjud ma'lumotlar bilan ishlaymiz. Natijada "teskari" reyting - siz foydalanuvchilar tomonidan qanday baholarni _qabul qilishini_ ko'rishingiz mumkin. Bu, asosan, qiziq.

ishlov berish

Boshlash uchun an'anaviy rad etish. Bu reyting, barcha avvalgilari kabi, norasmiy hisoblanadi. Hech qayerda xato qilmaganimga kafolat bermayman. Texnik tafsilotlarga qiziquvchilar uchun batafsil kod taqdim etiladi oldingi qismda.

Shunday qilib, keling, boshlaylik. Tahlil qilish uchun joriy 2019 yil (bu hali tugamagan) uchun sharhlar olindi. Yozish vaqtida foydalanuvchilar yozishgan 448533 ta izoh, csv faylining hajmi 288 Mbayt. Kuchli, ta'sirchan.

Yozish vaqti

Sharhlarni ish kunlari va dam olish kunlarini alohida ajratgan holda soat boβ€˜yicha guruhlaymiz.

Habrastatistika: o'quvchilarning sharhlarini tahlil qilish

Bu erda bizni mutlaq qiymatlar emas, balki nisbiy qadriyatlar qiziqtiradi. Agar siz unga "xuddi shunday" qarasangiz, shunday bo'ladiΠΎKo'pchilik sharhlar ish vaqtida 10 dan 18 gacha yozilgan πŸ˜‰ Boshqa tomondan, bu erda vaqt zonalari hisobga olinmagan, shuning uchun savol hali ham ochiq.

Keling, sharhlarning yil davomida taqsimlanishini ko'rib chiqaylik:

Habrastatistika: o'quvchilarning sharhlarini tahlil qilish

Va shunga qaramay, u ish kunlarida aniq ko'rinadi - haftalik davriylik aniq ko'rinadi, shuning uchun biz juda katta ishonch bilan aytishimiz mumkinki, odamlar Habrni ishdan o'qiydilar va sharhlaydilar (lekin bu aniq emas).

Aytgancha, olingan minuslar yoki plyuslar soni kun yoki vaqtdan farq qiladimi, degan gipotezani sinab ko'rish g'oyasi bor edi, ammo munosabatlarni topishning iloji bo'lmadi - reyting berilgan vaqt saqlanmaydi va izoh vaqti bilan bevosita aloqasi yo'q.

foydalanuvchilar

Albatta, saytdagi foydalanuvchilarning aniq sonini bilmayman. Ammo bu yil kamida bitta sharh qoldirganlar taxminan bo'lib chiqdi 25000 ta odam.

Foydalanuvchilar qoldirgan xabarlar sonining grafigi juda qiziqarli ko'rinadi:

Habrastatistika: o'quvchilarning sharhlarini tahlil qilish

Avvaliga o'zim ishonmadim, lekin xato bo'lmagandek tuyuldi. Foydalanuvchilarning 5 foizi xabarlarning 60 foizini qoldiradi. Barcha xabarlarning 10% - 74% (shundan eslatib o'taman, bu yil 450 ming). Ko'pchilik shunchaki saytni o'qiydi, juda kamdan-kam izoh qoldiradi yoki umuman qoldirmaydi (ular, tabiiyki, mening ro'yxatimga kiritilmagan).

Baholar

Keling, statistik ma'lumotlarning oxirgi va eng qiziqarli qismiga - reytinglarga o'tamiz. Maxfiylik sabab, foydalanuvchilarning to'liq taxalluslarini bermayman, kim xohlasa, o'zini o'zi taniydi, deb o'ylayman.

haqida sharhlar soni bu yil uchun eng yaxshi 5 talikka VoXXXX (3377 sharh), 0xdXXXXX (3286 sharh), strXXXX (3043 sharh), AmXXXX (2897 sharh) va khXXXX (2748 sharh) joylashdi.

haqida olingan imtiyozlar soni, eng yaxshi 5-oΚ»rinni amXXXX (1395 sharh, reyting +3231/-309), tvXXXX (1544 sharh, reyting +3231/-97), WhuXXXX (921 sharh, reyting +2288/-13), MTXXXX (1328 sharh, +1383 /-7) va amaXXXX (736 sharh, reyting +1340/-16).

haqida mutlaq ijobiy reyting (hech qaysi salbiy baholangan sharh) tepaning yuqori qismini egallagan Milfgard ΠΈ Boomburum. Istisno sifatida ularning taxalluslarini toβ€˜liq taqdim etaman, ular bunga loyiq deb oβ€˜ylayman.

Kamchiliklari ham qiziq. Yuqoridagi yig'ilgan minuslar soni bu yil uchun ular siXX (473 plyus, 699 minus), khXX (1915 plyus, 573 minus) va nicXXXXX (456 plyus, 487 minus) bilan band. Ammo ko'rib turganingizdek, bu foydalanuvchilarning ijobiy sharhlari etarli. Lekin ko'ra mutlaq minus Antitopik vladXXXX (55 ta sharh, 84 ta minus, 0 ta plyus), ekoXXXX (77 ta sharh, 92 ta minus, 1 ta plyus) va iMXXXX (225 ta sharh, 205 ta minus, 12 ta plyus) ni oΚ»z ichiga oladi.

xulosa

Men rejalashtirilgan hamma narsani hisoblay olmadim, lekin bu qiziqarli bo'ldi deb umid qilaman.

Ko'rib turganingizdek, hatto juda kam sonli maydonlarga ega bo'lgan ma'lumotlar to'plami ham tahlil qilish uchun qiziqarli ma'lumotlarni taqdim etishi mumkin. "So'z buluti" yaratishdan tortib matn tahliligacha hali ko'p narsalarni qazish kerak. Agar qiziqarli natijalar paydo bo'lsa, ular e'lon qilinadi.

Manba: www.habr.com

a Izoh qo'shish