Habrastatistics: okuyucu yorumlarının analizi

Merhaba Habr. İÇİNDE önceki bölüm Sitenin çeşitli bölümlerinin popülaritesi analiz edildi ve aynı zamanda makalelere yapılan yorumlardan hangi verilerin çıkarılabileceği sorusu ortaya çıktı. Ayrıca aşağıda tartışacağım bir hipotezi de test etmek istedim.
Habrastatistics: okuyucu yorumlarının analizi

Verilerin oldukça ilginç olduğu ortaya çıktı ve ayrıca yorumcuların küçük bir "mini derecelendirmesini" derleyebildik. Kesim altında devam edildi.

Veri toplama

Analiz için, özellikle csv biçimindeki makalelerin bir listesini zaten aldığım için bu yılın (2019) verilerini kullanacağız. Geriye kalan tek şey, her makaledeki yorumları çıkarmaktır; bizim için şans eseri, bunlar orada saklanır ve herhangi bir ek talep yapılmasına gerek yoktur.

Bir makaledeki yorumları vurgulamak için aşağıdaki kod yeterlidir:

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, şuna benzeyen yorumların bir listesini almamıza olanak tanır (takma adlar gizlilik nedeniyle kaldırılmıştır):

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

Gördüğünüz gibi her yorum için kullanıcı adını, tarihi, puanı ve asıl metni alabiliyoruz. Bakalım bundan ne elde edebiliriz.

Bu arada, başlangıçta derecelendirme toplama fikri biraz farklıydı; kullanıcıların hangi derecelendirmeleri verdiğini görmek için. Örneğin, YouTube'a bakabilirsiniz - en ideal video bile, herhangi bir öznel bilgi taşımayan, yalnızca referans amaçlı veya haber bülteni olan bir video bile yine de belirli sayıda eksi kazanır. Hipotez, tamamen klinik olarak her şeyden hoşlanmayan kullanıcıların olduğu, belki de beyinde serotonin üretilmediği veya başka bir şey olduğu yönündeydi. Belki de kişinin artık Habré'ye oturması gerekmiyor, depresyonu tedavi etmesi gerekiyor... Ama anlaşılan o ki, bunu burada kontrol edemiyorum çünkü... Puan verenlerin listesi yoruma veya yazıya kaydedilmiyor. Yani mevcut verilerle çalışacağız. Sonuç, "ters" bir derecelendirmedir; kullanıcılar tarafından hangi derecelendirmelerin_alıldığını_ görebilirsiniz. Bu da prensip olarak ilginçtir.

işleme

Başlangıç ​​olarak, geleneksel bir sorumluluk reddi beyanı. Bu derecelendirme, öncekilerin tümü gibi resmi değildir. Hiçbir yerde hata yapmadığımı garanti etmiyorum. Teknik ayrıntılarla ilgilenenler için daha ayrıntılı kod sağlanmıştır önceki bölümde.

Öyleyse başlayalım. Henüz bitmemiş olan 2019 yılına ait yorumlar analize alındı. Bu yazının yazıldığı sırada kullanıcılar şunu yazdı: 448533 yorumcsv dosyasının boyutu 288MB. Güçlü, etkileyici.

Yazma zamanı

Hafta içi ve hafta sonlarını ayrı ayrı bölerek yorumları saate göre gruplayalım.

Habrastatistics: okuyucu yorumlarının analizi

Burada mutlak değerlerle değil, göreceli değerlerle ilgileniyoruz. Sadece "olduğu gibi" bakarsanız, o zaman ortaya çıkar kiоYorumların çoğu mesai saatleri olan 10'dan 18'e kadar yazıldı 😉 Öte yandan burada saat dilimleri dikkate alınmadığı için soru hala açık.

Yorumların yıl içindeki dağılımına bakalım:

Habrastatistics: okuyucu yorumlarının analizi

Ve yine de dönüyor; hafta içi günlerde bir artış açıkça görülüyor - haftalık periyodiklik açıkça görülüyor, bu nedenle insanların işten Habr'ı okuduğunu ve yorum yaptığını oldukça yüksek bir güvenle söyleyebiliriz (ancak bu kesin değil).

Bu arada, alınan eksi veya artı sayısının günden veya günün saatinden farklı olup olmadığı hipotezini test etme fikri vardı, ancak bir ilişki bulmak mümkün olmadı - derecelendirmenin verildiği zaman kaydedilmedi ve Yorumun zamanı ile doğrudan bir bağlantısı yoktur.

Üyeler

Tabii sitedeki kullanıcı sayısını tam olarak bilmiyorum. Ancak bu yıl en az bir yorum bırakanların yaklaşık olduğu ortaya çıktı 25000 insanlar.

Kullanıcıların bıraktığı mesaj sayısının grafiği oldukça ilginç görünüyor:

Habrastatistics: okuyucu yorumlarının analizi

İlk başta ben de inanmadım ama hiçbir hata yokmuş gibi görünüyordu. Kullanıcıların %5'i mesajların %60'ını bırakıyor. Tüm mesajların %10 - %74'ü (bunun bu yıl 450 bin olduğunu hatırlatmama izin verin). Çoğunluk siteyi okuyor, çok nadiren yorum bırakıyor veya hiç bırakmıyor (bunlar doğal olarak listeme dahil edilmedi).

Puanları

İstatistiğin son ve en eğlenceli kısmına, yani derecelendirmelere geçelim. Gizlilik nedeniyle kullanıcıların tam takma adlarını vermeyeceğim; isteyen herkesin kendisini tanıyacağını düşünüyorum.

Üzerinde yorum sayısı bu yıl ilk 5'te VoXXXX (3377 yorum), 0xdXXXXX (3286 yorum), strXXXX (3043 yorum), AmXXXX (2897 yorum) ve khXXXX (2748 yorum) yer alıyor.

Üzerinde alınan yardımların sayısı, ilk 5'te amXXXX (1395 yorum, derecelendirme +3231/-309), tvXXXX (1544 yorum, derecelendirme +3231/-97), WhuXXXX (921 yorum, derecelendirme +2288/-13), MTXXXX (1328 yorum, +1383 /-7) ve amaXXXX (736 yorum, derecelendirme +1340/-16).

Üzerinde mutlak olumlu değerlendirme (herhangi olumsuz olarak değerlendirilen yorum) üst kısmın üst kısmı şu kişi tarafından işgal edilmiştir: Milfgard и patlama. İstisna olarak takma adlarını tam olarak sunuyorum, hak ettiklerini düşünüyorum.

Olumsuz yönleri de ilginç. En çok toplanan eksi sayısı bu yıl siXX (473 artı, 699 eksi), khXX (1915 artı, 573 eksi) ve nicXXXXX (456 artı, 487 eksi) tarafından işgal ediliyorlar. Ancak gördüğünüz gibi bu kullanıcıların yeterince olumlu yorumu var. Ama göre mutlak eksi Antitopik olarak vladXXXX (55 yorum, 84 eksi, 0 artı), ekoXXXX (77 yorum, 92 eksi, 1 artı) ve iMXXXX (225 yorum, 205 eksi, 12 artı) yer alıyor.

Sonuç

Planlanan her şeyi hesaplayamadım ama umarım ilginç olmuştur.

Gördüğünüz gibi bu kadar az sayıda alana sahip bir veri seti bile analiz için ilginç veriler sağlayabilir. Bir "kelime bulutu" oluşturmaktan metin analizine kadar hala araştırılacak çok şey var. İlginç sonuçlar ortaya çıkarsa yayınlanacak.

Kaynak: habr.com

Yorum ekle