Габрастистика: Хабр геэктаймсыз кантип жашайт

Эй Хабр.

Бул макала рейтингдин логикалык уландысы болуп саналат 2018-жылдагы эң мыкты Habr макалалары. Жана жыл бүтө элек болсо да, өзүңүздөр билгендей, жайында эрежелерге өзгөртүүлөр киргизилген, ошого жараша, бул кандайдыр бир таасир эткенби же жокпу деген суроо кызык болду.

Габрастистика: Хабр геэктаймсыз кантип жашайт

Чыныгы статистикадан тышкары, макалалардын жаңыланган рейтинги, ошондой эле анын кантип иштешине кызыккандар үчүн кээ бир баштапкы коддор берилет.

Болгон окуяга кызыккандар үчүн уландысы үзүндү. Сайттын бөлүмдөрүнүн деталдуу талдоосуна кызыккандар да караса болот кийинки бөлүгү.

алгачкы маалыматтар

Бул рейтинг расмий эмес, менде эч кандай инсайдерлик маалымат жок. Браузериңиздин дарек тилкесин карап оңой эле көрө аласыз, 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. Жалпысынан алганда, көп - бул күнүнө болжол менен XNUMX макала (жана бул оң рейтинги менен гана; терс болгон же өчүрүлгөн жалпы макалалардын канчасы жүктөлүп алынганын бир гана болжолдоого болот. же идентификаторлордун ортосундагы боштуктардан болжол менен баалоо).

Берилиштер топтомунан керектүү талааларды тандап алалы. Метрика катары биз көрүүлөрдүн санын, комментарийлерди, баалоо маанилерин жана кыстармалардын санын колдонобуз.

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

Эми кызыктуу бөлүгү, биз графиктерди карай алабыз.

2019-жылы Habré боюнча басылмалардын санын карап көрөлү.

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

Натыйжа кызыктуу. Көрүнүп тургандай, Хабр жыл бою бир аз "колбаса" болду. Мен себебин билбейм.

Габрастистика: Хабр геэктаймсыз кантип жашайт

Салыштыруу үчүн, 2018 бир аз жылмакай көрүнөт:

Габрастистика: Хабр геэктаймсыз кантип жашайт

Жалпысынан, мен график боюнча 2019-жылы жарыяланган макалалардын саны кескин азайганын көргөн жокмун. Анын үстүнө, тескерисинче, жайдан бери бир аз да көбөйдү окшойт.

Бирок кийинки эки график мени бир аз көбүрөөк чөктүрөт.

Бир макаланы көрүүлөрдүн орточо саны:

Габрастистика: Хабр геэктаймсыз кантип жашайт

Бир макаланын орточо рейтинги:

Габрастистика: Хабр геэктаймсыз кантип жашайт

Көрүнүп тургандай, көрүүлөрдүн орточо саны жыл бою бир аз төмөндөйт. Бул жаңы макалалар издөө системалары тарабынан индекстеле электиги жана алар мынчалык көп кездеше бербегендиги менен түшүндүрсө болот. Бирок макаланын орточо рейтингинин төмөндөшү түшүнүксүз. Окурмандардын ушунча көп макалаларды карап чыгууга убактысы жок же рейтингдерге көңүл бурушпайт деген сезим бар. Автордук сыйлык программасынын көз карашынан алганда, бул тенденция абдан жагымсыз.

Айтмакчы, бул 2018-жылы болгон жок, график аздыр-көптүр бир калыпта.

Габрастистика: Хабр геэктаймсыз кантип жашайт

Жалпысынан алганда, ресурс ээлери ойлоно турган нерсе бар.

Бирок кейиштүү нерселерди айтпай эле коелу. Жалпысынан алганда, биз Хабр жайкы өзгөрүүлөрдү ийгиликтүү "аман" деп айта алабыз жана сайттагы макалалардын саны азайган жок.

рейтинг

Азыр, чынында, рейтинг. Ага киргендерди куттуктайм. Рейтинг расмий эмес экенин дагы бир жолу эскертип коеюн, балким мен бир нерсени байкабай калгандырмын, эгер кандайдыр бир макала сөзсүз түрдө бул жерде болушу керек, бирок андай эмес, жаз, мен аны кол менен кошом. Рейтинг катары мен эсептелген көрсөткүчтөрдү колдоном, менимче, бул абдан кызыктуу болду.

Көрүүлөрдүн саны боюнча мыкты макалалар

Рейтинг жана көрүү катышы боюнча мыкты макалалар

Комментарийлердин көрүүлөр катышы боюнча мыкты макалалар

Эң талаштуу макалалар

Рейтинг боюнча мыкты макалалар

Кыстармалардын саны боюнча мыкты макалалар

Кыстармалардын көрүүлөргө катышы боюнча алдыңкы

Комментарийлердин саны боюнча мыкты макалалар

Акыры, акыркысы Жакпагандардын саны боюнча антитоп

Уф. Менде дагы бир нече кызыктуу тандоолор бар, бирок мен окурмандарды тажабайм.

жыйынтыктоо

Рейтингди түзүүдө мен кызыктуу көрүнгөн эки жагдайга көңүл бурдум.

Биринчиден, жогорку 60% "geektimes" жанрындагы макалалар. Келерки жылы алардын саны аз болобу, жана Хабр сыра, космос, медицина ж.б.у.с. жөнүндө макалаларсыз кандай болот, билбейм. Албетте, окурмандар бир нерсе жоготот. көрөлү.

Экинчиден, жогорку кыстармалар күтүлбөгөн жерден жогорку сапатта болуп чыкты. Бул психологиялык жактан түшүнүктүү, окурмандар рейтингге көңүл бурбашы мүмкүн, бирок макалада керек, анда ал кыстармаларыңызга кошулат. Бул жерде пайдалуу жана олуттуу макалалардын эң чоң топтолушу. Менимче, сайттын ээлери кандайдыр бир жол менен кыстармалардын саны менен сыйлык программасынын ортосундагы байланышты ойлонушу керек, эгерде алар бул жерде Habréдеги макалалардын ушул категориясын көбөйтүүнү кааласа.

Ушул сыяктуу бир нерсе. Бул маалыматтык болду деп үмүттөнөм.

Макалалардын тизмеси узун болуп чыкты, жакшы, балким, жакшы. Баарыңарга бактылуу окуу.

Source: www.habr.com

Комментарий кошуу