Habrastatistics: si jeton Habr pa geektimes

Hej Habr.

Ky artikull është një vazhdim logjik i vlerësimit Artikujt më të mirë Habr për 2018. Dhe megjithëse viti nuk ka mbaruar ende, siç e dini, gjatë verës pati ndryshime në rregulla, në përputhje me rrethanat, u bë interesante të shihej nëse kjo ndikoi në ndonjë gjë.

Habrastatistics: si jeton Habr pa geektimes

Përveç statistikave aktuale, do të sigurohet një vlerësim i përditësuar i artikujve, si dhe një kod burimor për ata që janë të interesuar se si funksionon.

Për ata që janë të interesuar për atë që ka ndodhur, vazhdimi është nën prerje. Ata që janë të interesuar për një analizë më të detajuar të seksioneve të faqes mund të shikojnë gjithashtu pjesa tjetër.

Të dhënat fillestare

Ky vlerësim është jozyrtar dhe nuk kam ndonjë informacion të brendshëm. Siç mund ta shihni lehtësisht duke parë shiritin e adresave të shfletuesit tuaj, të gjithë artikujt në Habré kanë numërim të vazhdueshëm. Pastaj është çështje teknike, thjesht i lexojmë të gjithë artikujt me radhë në një cikël (në një fill dhe me pauza, për të mos ngarkuar serverin). Vetë vlerat janë marrë nga një analizues i thjeshtë në Python (burimet janë të disponueshme këtu) dhe u ruajt në një skedar csv diçka si kjo:

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

Përpunim

Për analizë do të përdorim Python, Pandas dhe Matplotlib. Ata që nuk janë të interesuar për statistikat, mund ta kalojnë këtë pjesë dhe të shkojnë direkt te artikujt.

Së pari ju duhet të ngarkoni grupin e të dhënave në memorie dhe të zgjidhni të dhënat për vitin e dëshiruar.

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)

Rezulton se këtë vit (edhe pse nuk ka përfunduar ende) në momentin e shkrimit, janë botuar 12715 artikuj. Për krahasim, për të gjithë vitin 2018 - 15904. Në përgjithësi, shumë - kjo është rreth 43 artikuj në ditë (dhe kjo është vetëm me një vlerësim pozitiv; sa artikuj gjithsej janë shkarkuar që dolën negativë ose u fshinë, mund të merret me mend vetëm ose përafërsisht të vlerësohet nga boshllëqet midis identifikuesve).

Le të zgjedhim fushat e nevojshme nga grupi i të dhënave. Si metrikë ne do të përdorim numrin e shikimeve, komenteve, vlerave të vlerësimit dhe numrin e faqeshënuesve.

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

Tani të dhënat janë shtuar në grupin e të dhënave dhe ne mund t'i përdorim ato. Le të grupojmë të dhënat sipas ditës dhe të marrim vlerat mesatare.

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()

Tani pjesa interesante është se ne mund të shikojmë grafikët.

Le të shohim numrin e publikimeve në Habré në 2019.

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()

Rezultati është interesant. Siç mund ta shihni, Habr ka qenë një "sallam" i vogël gjatë gjithë vitit. Nuk e di arsyen.

Habrastatistics: si jeton Habr pa geektimes

Për krahasim, viti 2018 duket pak më i qetë:

Habrastatistics: si jeton Habr pa geektimes

Në përgjithësi, nuk kam parë ndonjë rënie drastike të numrit të artikujve të botuar në vitin 2019 në grafik. Madje, përkundrazi, duket se është rritur edhe pak që nga vera.

Por dy grafikët e ardhshëm më dëshpërojnë pak më shumë.

Numri mesatar i shikimeve për artikull:

Habrastatistics: si jeton Habr pa geektimes

Vlerësimi mesatar për artikull:

Habrastatistics: si jeton Habr pa geektimes

Siç mund ta shihni, numri mesatar i shikimeve zvogëlohet pak gjatë gjithë vitit. Kjo mund të shpjegohet me faktin se artikujt e rinj nuk janë indeksuar ende nga motorët e kërkimit dhe ato nuk gjenden aq shpesh. Por rënia e vlerësimit mesatar për artikull është më e pakuptueshme. Ndjenja është se lexuesit thjesht nuk kanë kohë të shikojnë kaq shumë artikuj ose nuk u kushtojnë vëmendje vlerësimeve. Nga pikëpamja e programit të shpërblimit të autorit, ky trend është shumë i pakëndshëm.

Meqë ra fjala, kjo nuk ka ndodhur në vitin 2018 dhe orari është pak a shumë i barabartë.

Habrastatistics: si jeton Habr pa geektimes

Në përgjithësi, pronarët e burimeve kanë diçka për të menduar.

Por le të mos flasim për gjëra të trishtueshme. Në përgjithësi, mund të themi se Habr "i mbijetoi" ndryshimeve të verës me mjaft sukses, dhe numri i artikujve në faqe nuk u ul.

Vlerësim

Tani, në fakt, vlerësimi. Urime për ata që hynë në të. Më lejoni t'ju kujtoj edhe një herë se vlerësimi është jozyrtar, mbase kam humbur diçka, dhe nëse ndonjë artikull duhet të jetë patjetër këtu, por nuk është, shkruani, do ta shtoj manualisht. Si vlerësim, përdor metrikë të llogaritur, të cilat mendoj se rezultuan mjaft interesante.

Artikujt kryesorë sipas numrit të shikimeve

Artikujt kryesorë sipas raportit të vlerësimit ndaj shikimeve

Artikujt kryesorë sipas raportit komente ndaj shikimeve

Artikujt kryesorë më të diskutueshëm

Artikujt kryesorë sipas vlerësimit

Artikujt kryesorë sipas numrit të faqeshënuesve

Top sipas raportit të faqeshënuesve me shikimet

Artikujt kryesorë sipas numrit të komenteve

Dhe së fundi, e fundit Antitop sipas numrit të mospëlqimeve

Uh. Kam disa përzgjedhje më interesante, por nuk do t'i mërzit lexuesit.

Përfundim

Kur ndërtova vlerësimin, i kushtova vëmendje dy pikave që dukeshin interesante.

Së pari, 60% e top janë artikuj të zhanrit "geektimes". Nuk e di nëse do të ketë më pak prej tyre vitin e ardhshëm dhe si do të duket Habr pa artikuj për birrën, hapësirën, mjekësinë etj. Sigurisht, lexuesit do të humbasin diçka. Le të shohim.

Së dyti, faqerojtësit kryesorë doli të ishin të një cilësie të papritur të lartë. Kjo është psikologjikisht e kuptueshme; lexuesit mund të mos i kushtojnë vëmendje vlerësimit, por nëse artikulli nevojë, më pas do të shtohet në faqeshënuesit tuaj. Dhe këtu është pikërisht përqendrimi më i madh i artikujve të dobishëm dhe serioz. Unë mendoj se pronarët e faqeve duhet të mendojnë disi për lidhjen midis numrit të faqeshënuesve dhe programit të shpërblimeve nëse duan të rrisin këtë kategori të veçantë artikujsh këtu në Habré.

Diçka si kjo. Shpresoj se ishte informuese.

Lista e artikujve doli të jetë e gjatë, mirë, ndoshta është për mirë. Gëzuar lexim të gjithëve.

Burimi: www.habr.com

Shto një koment