Habrastatistika: nganalisa komentar maca

Sugeng Habr. ING bagean sadurunge Popularitas macem-macem bagean situs dianalisis, lan ing wektu sing padha ana pitakonan - data apa sing bisa diekstrak saka komentar ing artikel. Aku uga pengin nyoba siji hipotesis, sing bakal dakrembug ing ngisor iki.
Habrastatistika: nganalisa komentar maca

Data kasebut dadi cukup menarik; kita uga bisa nggawe "mini-rating" komentator cilik. Terus ing ngisor potong.

Pangumpulan data

Kanggo analisis, kita bakal nggunakake data kanggo taun iki, 2019, utamane amarga aku wis nampa dhaptar artikel ing wangun csv. Sing isih ana yaiku ngekstrak komentar saka saben artikel; untunge kanggo kita, padha disimpen ing kono, lan ora ana panjaluk tambahan sing kudu ditindakake.

Kanggo nyorot komentar saka artikel, kode ing ngisor iki 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)

Iki ngidini kita entuk dhaptar komentar sing katon kaya iki (julukan dibusak amarga 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,А Π½Π΅ Π²Π°ΠΆΠ½ΠΎ Π³Π»Π°Π²Π½ΠΎΠ΅ Π² ΠΈΡ‚ΠΎΠ³Π΅ Π² плюсС ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ

Kaya sing sampeyan ngerteni, kanggo saben komentar, kita bisa entuk jeneng pangguna, tanggal, rating, lan teks sing nyata. Ayo ndeleng apa sing bisa kita entuk saka iki.

Miturut cara, wiwitane, ide kanggo ngumpulake rating rada beda - kanggo ndeleng rating apa sing diwenehake pangguna. Contone, sampeyan bisa ndeleng YouTube - malah video sing paling becik, malah video sing ora ngemot informasi subyektif, murni kanggo referensi utawa release warta, isih entuk sawetara minuses. Hipotesis kasebut ana pangguna sing, murni klinis, ora seneng kabeh, bisa uga serotonin ora diprodhuksi ing otak utawa liya-liyane. Mungkin wong ora perlu njagong ing HabrΓ©, nanging kanggo nambani depresi ... Nanging ternyata, aku ora bisa mriksa iki ing kene, amarga ... dhaptar wong sing menehi rating ora disimpen ing komentar utawa artikel. Yaiku, kita bakal nggarap data sing kasedhiya. Asil kasebut minangka rating "mundur" - sampeyan bisa ndeleng rating apa sing _ditampa_ dening pangguna. Kang, ing asas, uga menarik.

Processing

Kanggo miwiti, wewaler tradisional. Rating iki, kaya kabeh sing sadurunge, ora resmi. Aku ora njamin yen aku ora nggawe kesalahan ing ngendi wae. Kanggo sing kepengin weruh rincian teknis, kode sing luwih rinci diwenehake ing bagean sadurunge.

Dadi ayo miwiti. Komentar kanggo taun iki, 2019 (sing durung rampung), dijupuk kanggo dianalisis. Nalika nulis, pangguna nulis Komentar 448533, ukuran file csv yaiku 288 MB. Kuat, nyengsemaken.

Wektu nulis

Ayo klompok komentar miturut jam, dibagi saben dina lan akhir minggu kanthi kapisah.

Habrastatistika: nganalisa komentar maca

Kene kita ora kasengsem ing nilai absolut, nanging ing relatif. Yen sampeyan mung ndeleng "kaya", banjur dadi metuΠΎUmume komentar ditulis sajrone jam kerja saka 10 nganti 18 πŸ˜‰ Ing sisih liya, zona wektu ora dianggep ing kene, mula pitakonan isih mbukak.

Ayo ndeleng distribusi komentar ing saindhenging taun:

Habrastatistika: nganalisa komentar maca

Nanging isih muter; mundhak katon kanthi jelas ing dina minggu - periodisitas mingguan katon kanthi jelas, mula kita bisa ujar kanthi yakin manawa wong maca lan menehi komentar babagan Habr saka pakaryan (nanging iki ora mesthi).

Miturut cara, ana gagasan kanggo nguji hipotesis manawa jumlah minus utawa plus sing ditampa beda karo dina utawa wektu, nanging ora bisa nemokake hubungan - wektu rating kasebut ora disimpen, lan ora ana hubungan langsung karo wektu komentar.

Pangguna

Mesthi, aku ora ngerti jumlah pangguna sing tepat ing situs kasebut. Nanging sing ninggalake paling ora siji komentar ing taun iki dadi kira-kira 25000 wong.

Grafik jumlah pesen sing ditinggalake pangguna katon cukup menarik:

Habrastatistika: nganalisa komentar maca

Kaping pisanan aku ora percaya, nanging kayane ora ana kesalahan. 5% pangguna ninggalake 60% pesen. 10% - 74% kabeh pesen (sing, aku ngelingake sampeyan, taun iki, 450 ewu). Mayoritas mung maca situs kasebut, ninggalake komentar arang banget, utawa ora ninggalake kabeh (sing, mesthine, ora kalebu ing dhaptar).

Ratings

Ayo pindhah menyang bagean pungkasan lan paling nyenengake saka statistik - ratings. Kanggo alasan privasi, aku ora bakal menehi julukan lengkap pangguna, sapa sing pengin, aku mikir, bakal ngenali awake dhewe.

Miturut nomer komentar kanggo taun iki, ndhuwur 5 dikuwasani dening VoXXXX (3377 komentar), 0xdXXXXX (3286 komentar), strXXXX (3043 komentar), AmXXXX (2897 komentar) lan khXXXX (2748 komentar).

Miturut jumlah keuntungan sing ditampa, top 5 dikuwasani amXXXX (1395 komentar, rating +3231/-309), tvXXXX (1544 komentar, rating +3231/-97), WhuXXXX (921 komentar, rating +2288/-13), MTXXXX (1328 komentar, +1383 /-7) lan amaXXXX (736 komentar, rating +1340/-16).

Miturut rating positif mutlak (ora tunggal komentar negatif) ndhuwur ndhuwur dikuwasani dening Milfgard ΠΈ Boomburum. Minangka pangecualian, aku menehi julukan kanthi lengkap, aku rumangsa pantes.

Kelemahane uga menarik. Ndhuwur dening jumlah minus diklumpukake kanggo taun iki dikuwasani dening siXX (473 plus, 699 minus), khXX (1915 plus, 573 minus) lan nicXXXX (456 plus, 487 minus). Nanging kaya sing sampeyan ngerteni, pangguna kasebut duwe komentar positif sing cukup. Nanging miturut minus mutlak Antitopik kalebu vladXXXX (55 komentar, 84 minus, 0 plus), ekoXXXX (77 komentar, 92 minus, 1 plus) lan iMXXXX (225 komentar, 205 minus, 12 plus).

kesimpulan

Aku ora bisa ngetung kabeh ngrancang, nanging muga-muga menarik.

Minangka sampeyan bisa ndeleng, malah dataset karo jumlah cilik saka kolom bisa nyedhiyani data menarik kanggo analisis. Isih akeh sing kudu digali, saka mbangun "awan tembung" nganti analisis teks. Yen ana asil sing menarik, bakal diterbitake.

Source: www.habr.com

Add a comment