Habrastatistics. ինչպես է Habr-ն ապրում առանց geektimes-ի

Հե՜յ Հաբր։

Այս հոդվածը վարկանիշի տրամաբանական շարունակությունն է 2018 թվականի լավագույն Habr հոդվածները. Եվ չնայած տարին դեռ չի ավարտվել, ինչպես գիտեք, ամռանը կանոնների փոփոխություններ եղան, համապատասխանաբար, հետաքրքիր դարձավ տեսնել, թե արդյոք դա ինչ-որ բանի վրա ազդե՞լ է։

Habrastatistics. ինչպես է Habr-ն ապրում առանց geektimes-ի

Բացի փաստացի վիճակագրությունից, կտրամադրվի հոդվածների թարմացված վարկանիշ, ինչպես նաև որոշ կոդ՝ նրանց համար, ովքեր հետաքրքրված են, թե ինչպես է այն աշխատում:

Տեղի ունեցածով հետաքրքրվողների համար շարունակությունը կտրվածքի տակ է. Նրանք, ովքեր հետաքրքրված են կայքի բաժինների ավելի մանրամասն վերլուծությամբ, կարող են նաև նայել հաջորդ մասը.

Նախնական տվյալներ

Այս վարկանիշը ոչ պաշտոնական է, և ես որևէ ներքին տեղեկություն չունեմ։ Ինչպես հեշտությամբ կարող եք տեսնել՝ նայելով ձեր բրաուզերի հասցեագոտին, Habré-ի բոլոր հոդվածներն ունեն շարունակական համարակալում: Հետո դա տեխնիկայի հարց է, մենք պարզապես կարդում ենք բոլոր հոդվածները անընդմեջ ցիկլով (մեկ թեմայում և դադարներով, որպեսզի չբեռնենք սերվերը): Արժեքներն իրենք ստացվել են Python-ում պարզ վերլուծիչով (աղբյուրները հասանելի են այստեղ) և պահվել է csv ֆայլում այսպիսի բան.

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

Մշակման

Վերլուծության համար մենք կօգտագործենք Python, Pandas և Matplotlib: Նրանք, ովքեր չեն հետաքրքրվում վիճակագրությամբ, կարող են բաց թողնել այս հատվածը և անմիջապես անցնել հոդվածներին։

Նախ անհրաժեշտ է բեռնել տվյալների հավաքածուն հիշողության մեջ և ընտրել ցանկալի տարվա տվյալները:

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)

Պարզվում է, որ այս տարի (թեև դեռ ավարտված չէ) գրելու պահին տպագրվել է 12715 հոդված։ Համեմատության համար՝ ամբողջ 2018-ի համար՝ 15904: Ընդհանուր առմամբ, շատ բան՝ սա օրական մոտ 43 հոդված է (և սա միայն դրական գնահատականով. քանի՞ ընդհանուր հոդված է ներբեռնվել, որոնք բացասական են եղել կամ ջնջվել, կարելի է միայն գուշակել։ կամ մոտավորապես գնահատել նույնացուցիչների միջև եղած բացերը):

Եկեք ընտրենք անհրաժեշտ դաշտերը տվյալների հավաքածուից: Որպես չափումներ մենք կօգտագործենք դիտումների քանակը, մեկնաբանությունները, վարկանիշային արժեքները և էջանիշների քանակը:

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

Այժմ տվյալները ավելացվել են տվյալների հավաքածուին, և մենք կարող ենք օգտագործել այն: Տվյալները խմբավորենք ըստ օրերի և վերցնենք միջին արժեքները։

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

Այժմ հետաքրքիրն այն է, որ մենք կարող ենք դիտել գրաֆիկները:

Դիտարկենք Habré-ի հրապարակումների թիվը 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()

Արդյունքը հետաքրքիր է. Ինչպես տեսնում եք, Հաբրը մի փոքր «երշիկ» է եղել ամբողջ տարվա ընթացքում: Պատճառը չգիտեմ։

Habrastatistics. ինչպես է Habr-ն ապրում առանց geektimes-ի

Համեմատության համար, 2018 թվականը մի փոքր ավելի հարթ է թվում.

Habrastatistics. ինչպես է Habr-ն ապրում առանց geektimes-ի

Ընդհանուր առմամբ, 2019-ին գրաֆիկի վրա տպագրված հոդվածների քանակի կտրուկ նվազում չեմ տեսել։ Ավելին, ընդհակառակը, ամառվանից այն կարծես թե նույնիսկ մի փոքր ավելացել է։

Բայց հաջորդ երկու գրաֆիկները մի փոքր ավելի են ընկճում ինձ։

Մեկ հոդվածի դիտումների միջին քանակը.

Habrastatistics. ինչպես է Habr-ն ապրում առանց geektimes-ի

Միջին գնահատականը մեկ հոդվածի համար.

Habrastatistics. ինչպես է Habr-ն ապրում առանց geektimes-ի

Ինչպես տեսնում եք, դիտումների միջին թիվը տարվա ընթացքում մի փոքր նվազում է։ Դա կարելի է բացատրել նրանով, որ նոր հոդվածները դեռ չեն ինդեքսավորվել որոնման համակարգերի կողմից, և դրանք այնքան էլ հաճախ չեն գտնվում։ Բայց ավելի անհասկանալի է մեկ հոդվածի միջին վարկանիշի անկումը։ Զգացողությունն այն է, որ ընթերցողները կա՛մ պարզապես ժամանակ չունեն այդքան հոդվածներ թերթելու, կա՛մ ուշադրություն չեն դարձնում վարկանիշներին։ Հեղինակային պարգեւատրման ծրագրի տեսանկյունից այս միտումը շատ տհաճ է։

Ի դեպ, դա տեղի չի ունեցել 2018 թվականին, և գրաֆիկը քիչ թե շատ հավասարաչափ է։

Habrastatistics. ինչպես է Habr-ն ապրում առանց geektimes-ի

Ընդհանուր առմամբ, ռեսուրսների սեփականատերերը մտածելու բան ունեն:

Բայց տխուր բաների մասին չխոսենք։ Ընդհանուր առմամբ, կարելի է ասել, որ Հաբրը բավականին հաջող է «գոյատեւել» ամառային փոփոխությունները, և կայքում հոդվածների թիվը չի նվազել։

Գնահատական

Հիմա, փաստորեն, վարկանիշը։ Շնորհավորում եմ նրանց, ովքեր մտել են դրա մեջ: Եվս մեկ անգամ հիշեցնեմ, որ վարկանիշը ոչ պաշտոնական է, միգուցե ինչ-որ բան բաց եմ թողել, և եթե որևէ հոդված անպայման պետք է լինի այստեղ, բայց դա այդպես չէ, գրեք, ես ձեռքով կավելացնեմ: Որպես վարկանիշ օգտագործում եմ հաշվարկված չափումներ, որոնք, կարծում եմ, բավականին հետաքրքիր են ստացվել։

Լավագույն հոդվածներն ըստ դիտումների քանակի

Լավագույն հոդվածներն ըստ վարկանիշի և դիտումների հարաբերակցության

Լավագույն հոդվածները՝ ըստ մեկնաբանությունների և դիտումների հարաբերակցության

Թոփ ամենահակասական հոդվածները

Լավագույն հոդվածները ըստ վարկանիշի

Լավագույն հոդվածներն ըստ էջանիշների քանակի

Վերև՝ ըստ էջանիշների և դիտումների հարաբերակցության

Լավագույն հոդվածները՝ ըստ մեկնաբանությունների քանակի

Եվ վերջապես, վերջինը Antitop ըստ հակակրանքների քանակի

Ուֆ. Եվս մի քանի հետաքրքիր ընտրանի ունեմ, բայց չեմ ձանձրացնի ընթերցողներին։

Ամփոփում

Վարկանիշը կազմելիս ուշադրություն դարձրի երկու կետի, որոնք հետաքրքիր էին թվում.

Նախ, լավագույնների 60%-ը «geektimes» ժանրի հոդվածներ են։ Արդյո՞ք հաջորդ տարի դրանք ավելի քիչ կլինեն, և ինչպիսին կլինի Հաբրը առանց գարեջրի, տիեզերքի, բժշկության և այլնի մասին հոդվածների, ես չգիտեմ: Միանշանակ, ընթերցողները ինչ-որ բան կկորցնեն։ Եկեք տեսնենք.

Երկրորդ՝ թոփ էջանիշները անսպասելի բարձր որակի են ստացվել։ Սա հոգեբանորեն հասկանալի է, ընթերցողները կարող են ուշադրություն չդարձնել վարկանիշին, բայց եթե հոդվածը անհրաժեշտ է, ապա այն կավելացվի ձեր էջանիշներին: Եվ ահա հենց օգտակար և լուրջ հոդվածների ամենամեծ համակենտրոնացումը: Կարծում եմ, որ կայքի սեփականատերերը պետք է ինչ-որ կերպ մտածեն էջանիշների քանակի և պարգևների ծրագրի միջև կապի մասին, եթե ցանկանում են ավելացնել հոդվածների այս հատուկ կատեգորիան այստեղ՝ Habré-ում:

Նման մի բան. Հուսով եմ, որ տեղեկատվական էր:

Հոդվածների ցանկը երկար է ստացվել, լավ, հավանաբար դեպի լավը: Ուրախ ընթերցում բոլորին:

Source: www.habr.com

Добавить комментарий