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.
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.
Sonuç ilginç. Gördüğünüz gibi Habr yıl boyunca biraz “sosis” oldu. Sebebini bilmiyorum.
Karşılaştırma yapmak gerekirse, 2018 biraz daha sorunsuz görünü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ı:
Makale başına ortalama derecelendirme:
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.
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.
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.