Habrastatistics: Habr geektimes olmadan nasıl yaşıyor

Merhaba Habr.

Bu makale derecelendirmenin mantıksal bir devamıdır 2018'in en iyi Habr makaleleri. Ve yıl henüz bitmemiş olsa da bildiğiniz gibi yaz aylarında kurallarda değişiklikler oldu ve bunun herhangi bir şeyi etkileyip etkilemediğini görmek ilginç hale geldi.

Habrastatistics: Habr geektimes olmadan nasıl yaşıyor

Gerçek istatistiklere ek olarak, makalelerin güncellenmiş derecelendirmesi ve nasıl çalıştığını merak edenler için bazı kaynak kodları da sunulacak.

Ne olduğunu merak edenler için devamı kesim altında. Sitedeki bölümlerin daha ayrıntılı analiziyle ilgilenenler de bakabilir sonraki bölüm.

Ham veriler

Bu derecelendirme resmi değildir ve içeriden herhangi bir bilgiye sahip değilim. Tarayıcınızın adres çubuğuna baktığınızda da kolaylıkla görebileceğiniz gibi, Habré'deki tüm yazılar sürekli numaralandırmaya sahiptir. O zaman bu bir teknik meselesidir, tüm makaleleri bir döngüde arka arkaya okuruz (sunucuyu yüklememek için tek bir başlıkta ve duraklamalarla). Değerlerin kendileri Python'daki basit bir ayrıştırıcıyla elde edildi (kaynaklar mevcuttur) burada) ve bir csv dosyasına şunun gibi bir şey kaydettim:

2019-08-11T22:36Z,https://habr.com/ru/post/463197/,"Blazor + MVVM = Silverlight наносит ответный удар, потому что древнее зло непобедимо",votes:11,votesplus:17,votesmin:6,bookmarks:40,views:5300,comments:73
2019-08-11T05:26Z,https://habr.com/ru/news/t/463199/,"В NASA испытали систему автономного управления одного микроспутника другим",votes:15,votesplus:15,votesmin:0,bookmarks:2,views:1700,comments:7

işleme

Ayrıştırma için Python, Pandas ve Matplotlib'i kullanacağız. İstatistikle ilgilenmeyenler bu kısmı atlayıp doğrudan yazılara geçebilirler.

Öncelikle veri setini hafızaya yüklemeniz ve istediğiniz yıla ait verileri seçmeniz gerekir.

import pandas as pd
import datetime
import matplotlib.dates as mdates
from matplotlib.ticker import FormatStrFormatter
from pandas.plotting import register_matplotlib_converters


df = pd.read_csv("habr.csv", sep=',', encoding='utf-8', error_bad_lines=True, quotechar='"', comment='#')
dates = pd.to_datetime(df['datetime'], format='%Y-%m-%dT%H:%MZ')
df['datetime'] = dates
year = 2019
df = df[(df['datetime'] >= pd.Timestamp(datetime.date(year, 1, 1))) & (df['datetime'] < pd.Timestamp(datetime.date(year+1, 1, 1)))]

print(df.shape)

Bu yıl (henüz bitmemiş olmasına rağmen) bu yazının yazıldığı sırada 12715 makalenin yayınlandığı ortaya çıktı. Karşılaştırma için, 2018'in tamamı için - 15904. Genel olarak, çok - bu günde yaklaşık 43 makaledir (ve bu yalnızca olumlu bir derecelendirmeyle; toplam kaç makale indirildi, olumsuz gitti veya silindi, yalnızca tahmin edilebilir) veya tanımlayıcılar arasındaki boşluklardan kabaca tahmin edin).

Veri kümesinden gerekli alanları seçelim. Metrik olarak görüntüleme sayısını, yorum sayısını, derecelendirme değerlerini ve yer imlerinin sayısını kullanacağız.

def to_float(s):
    # "bookmarks:22" => 22.0
    num = ''.join(i for i in s if i.isdigit())
    return float(num)

def to_int(s):
    # "bookmarks:22" => 22
    num = ''.join(i for i in s if i.isdigit())
    return int(num)

def to_date(dt):
    return dt.date() 

date = dates.map(to_date, na_action=None)
views = df["views"].map(to_int, na_action=None)
bookmarks = df["bookmarks"].map(to_int, na_action=None)
votes = df["votes"].map(to_float, na_action=None)
votes_up = df["up"].map(to_float, na_action=None)
votes_down = df["down"].map(to_float, na_action=None)
comments = df["comments"].map(to_int, na_action=None)

df['date'] = date
df['views'] = views
df['votes'] = votes
df['bookmarks'] = bookmarks
df['up'] = votes_up
df['down'] = votes_down

Artık veriler veri setine eklendi ve kullanabiliriz. Verileri günlere göre gruplayıp ortalama değerleri alalım.

g = df.groupby(['date'])
days_count = g.size().reset_index(name='counts')
year_days = days_count['date'].values
grouped = g.median().reset_index()
grouped['counts'] = days_count['counts']
counts_per_day = grouped['counts'].values
counts_per_day_avg = grouped['counts'].rolling(window=20).mean()
view_per_day = grouped['views'].values
view_per_day_avg = grouped['views'].rolling(window=20).mean()
votes_per_day = grouped['votes'].values
votes_per_day_avg = grouped['votes'].rolling(window=20).mean()
bookmarks_per_day = grouped['bookmarks'].values
bookmarks_per_day_avg = grouped['bookmarks'].rolling(window=20).mean()

Şimdi işin ilginç kısmı grafiklere bakabiliyoruz.

Habré ile ilgili 2019 yılındaki yayın sayısına bakalım.

import matplotlib.pyplot as plt

plt.rcParams["figure.figsize"] = (16, 8)
fig, ax = plt.subplots()

plt.bar(year_days, counts_per_day, label='Articles/day')
plt.plot(year_days, counts_per_day_avg, 'g-', label='Articles avg/day')
plt.xticks(rotation=45)
ax.xaxis.set_major_formatter(mdates.DateFormatter("%d-%m-%Y"))  
ax.xaxis.set_major_locator(mdates.MonthLocator(interval=1))
plt.legend(loc='best')
plt.tight_layout()
plt.show()

Sonuç ilginç. Gördüğünüz gibi Habr yıl boyunca biraz “sosis” oldu. Sebebini bilmiyorum.

Habrastatistics: Habr geektimes olmadan nasıl yaşıyor

Karşılaştırma yapmak gerekirse, 2018 biraz daha sorunsuz görünüyor:

Habrastatistics: Habr geektimes olmadan nasıl yaşıyor

Genel olarak grafikte 2019 yılında yayınlanan makale sayısında ciddi bir düşüş görmedim. Üstelik tam tersine yazdan bu yana biraz artmış gibi görünüyor.

Ama sonraki iki grafik beni biraz daha üzdü.

Makale başına ortalama görüntüleme sayısı:

Habrastatistics: Habr geektimes olmadan nasıl yaşıyor

Makale başına ortalama derecelendirme:

Habrastatistics: Habr geektimes olmadan nasıl yaşıyor

Gördüğünüz gibi yıl boyunca ortalama izlenme sayısı biraz düşüyor. Bu durum yeni makalelerin henüz arama motorları tarafından indekslenmemesi ve çok sık bulunmaması ile açıklanabilir. Ancak makale başına ortalama derecelendirmedeki düşüş daha da anlaşılmaz. Buradaki düşünce, okuyucuların ya bu kadar çok makaleye göz atacak zamanları olmadığı ya da derecelendirmelere dikkat etmedikleri yönünde. Yazar ödül programı açısından bu eğilim çok nahoş.

Bu arada, bu 2018'de gerçekleşmedi ve program aşağı yukarı eşit.

Habrastatistics: Habr geektimes olmadan nasıl yaşıyor

Genel olarak kaynak sahiplerinin düşünecek bir şeyleri vardır.

Ama üzücü şeyler hakkında konuşmayalım. Genel olarak Habr'ın yaz değişimlerini oldukça başarılı bir şekilde "sağladığını" ve sitedeki yazı sayısının azalmadığını söyleyebiliriz.

Değerlendirme

Şimdi, aslında derecelendirme. İçeri girenleri tebrik ediyorum. Derecelendirmenin resmi olmadığını bir kez daha hatırlatmama izin verin, belki bir şeyi kaçırdım ve eğer bir makalenin mutlaka burada olması gerekiyor ama değilse, yazın, manuel olarak ekleyeceğim. Derecelendirme olarak, oldukça ilginç olduğunu düşündüğüm hesaplanmış ölçümleri kullanıyorum.

Görüntülenme sayısına göre en iyi makaleler

Derecelendirme/görüntülenme oranına göre en çok okunan makaleler

Yorum/görüntüleme oranına göre en çok okunan makaleler

En tartışmalı makaleler

Derecelendirmeye göre en popüler makaleler

Yer işareti sayısına göre en popüler makaleler

Yer işaretlerinin görünümlere oranına göre en üstte

Yorum sayısına göre en iyi makaleler

Ve son olarak sonuncusu Beğenmeyenlerin sayısına göre Antitop

Ah. Birkaç ilginç seçkim daha var ama okuyucuyu sıkmayacağım.

Sonuç

Derecelendirmeyi oluştururken ilginç görünen iki noktaya dikkat ettim.

İlk olarak, en üsttekilerin %60'ı "geektimes" türünden makalelerdir. Gelecek yıl bunların sayısı azalacak mı ve bira, uzay, tıp vb. ile ilgili makaleler olmadan Habr'ın nasıl görüneceğini bilmiyorum. Elbette okuyucular bir şeyler kaybedecek. Görelim.

İkinci olarak, en iyi yer imlerinin beklenmedik derecede yüksek kalitede olduğu ortaya çıktı. Bu psikolojik olarak anlaşılabilir bir durumdur; okuyucular derecelendirmeye dikkat etmeyebilir ancak makale gerek, ardından yer imlerinize eklenecektir. Ve işte tam olarak yararlı ve ciddi makalelerin en büyük konsantrasyonu. Bence site sahipleri, eğer Habré'de bu özel makale kategorisini artırmak istiyorlarsa, yer imlerinin sayısı ile ödül programı arasındaki bağlantıyı bir şekilde düşünmelidirler.

Bunun gibi bir şey. Umarım bilgilendirici olmuştur.

Makale listesinin uzun olduğu ortaya çıktı, muhtemelen daha iyi. Herkese keyifli okumalar.

Kaynak: habr.com

Yorum ekle