Habrastatistics: pehea ke ola ʻana o Habr me ka ʻole o ka manawa

Aloha Habr.

ʻO kēia ʻatikala kahi hoʻomau kūpono o ka helu ʻO nā ʻatikala Habr maikaʻi loa no 2018. A ʻoiai ʻaʻole i pau ka makahiki, e like me kou ʻike, i ke kauwela ua hoʻololi ʻia nā lula, no laila, ua lilo ia i mea hoihoi e ʻike inā pili kēia i kekahi mea.

Habrastatistics: pehea ke ola ʻana o Habr me ka ʻole o ka manawa

Ma waho aʻe o nā ʻikepili maoli, e hāʻawi ʻia kahi helu hou o nā ʻatikala, a me kekahi code kumu no ka poʻe hoihoi i ke ʻano o ka hana.

No ka poʻe hoihoi i ka mea i hana ʻia, aia ka hoʻomau ma lalo o ka ʻoki. Hiki ke nānā aku ka poʻe i makemake i ka ʻike kikoʻī o nā ʻāpana o ka pūnaewele ʻāpana aʻe.

ʻIkepili mua

ʻAʻole mana kēia helu, a ʻaʻohe oʻu ʻike i loko. E like me kāu e ʻike maʻalahi ai ma ka nānā ʻana i ka pahu helu helu o kāu polokalamu kele pūnaewele, loaʻa nā ʻatikala āpau ma Habré i ka helu mau. A laila he mea ia o ka ʻenehana, heluhelu wale mākou i nā ʻatikala a pau i ka lālani i kahi pōʻai (i hoʻokahi kaula a me nā hoʻomaha, i ʻole e hoʻouka i ke kikowaena). Loaʻa nā waiwai iā lākou iho e kahi parser maʻalahi ma Python (loaʻa nā kumu maanei) a mālama ʻia i kahi faila csv e like me kēia:

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

Hoʻomākaukau

No ka parsing e hoʻohana mākou iā Python, Pandas a me Matplotlib. Hiki i ka poʻe hoihoi ʻole i ka helu helu ke hoʻokuʻu i kēia ʻāpana a hele pololei i nā ʻatikala.

Pono mua ʻoe e hoʻouka i ka ʻikepili i ka hoʻomanaʻo a koho i ka ʻikepili no ka makahiki i makemake ʻia.

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)

ʻIke ʻia i kēia makahiki (ʻoiai ʻaʻole i pau) i ka manawa i kākau ʻia ai, 12715 mau ʻatikala i paʻi ʻia. No ka hoʻohālikelike, no ka holoʻokoʻa 2018 - 15904. Ma keʻano laulā, he nui - e pili ana kēia i nā ʻatikala 43 i kēlā me kēia lā (a ʻo kēia wale nō me ka helu maikaʻi; ʻehia ka nui o nā ʻatikala i hoʻoiho ʻia i hele maikaʻi ʻole a i holoi ʻia paha, hiki ke koho wale. a i ʻole e hoʻohālikelike ʻia mai nā āpau i waena o nā mea ʻike).

E koho kākou i nā kahua kūpono mai ka waihona. E like me nā metric e hoʻohana mākou i ka helu o nā manaʻo, nā manaʻo, nā helu helu a me ka helu o nā bookmark.

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

I kēia manawa ua hoʻohui ʻia ka ʻikepili i ka dataset a hiki iā mākou ke hoʻohana. E hui pū kākou i ka ʻikepili ma ka lā a lawe i nā waiwai maʻamau.

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

I kēia manawa ʻo ka mea hoihoi, hiki iā mākou ke nānā i nā kiʻi.

E nānā i ka nui o nā paʻi ma Habré ma 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()

He hoihoi ka hopena. E like me kāu e ʻike ai, he "sausage" ʻo Habr i loko o ka makahiki. ʻAʻole maopopo iaʻu ke kumu.

Habrastatistics: pehea ke ola ʻana o Habr me ka ʻole o ka manawa

No ka hoʻohālikelike, ʻoi aku ka maʻalahi o ka 2018:

Habrastatistics: pehea ke ola ʻana o Habr me ka ʻole o ka manawa

Ma ka laulā, ʻaʻole au i ʻike i kahi emi nui o ka nui o nā ʻatikala i paʻi ʻia ma 2019 ma ka pakuhi. Eia kekahi, ma ka ʻokoʻa, ʻike ʻia ua piʻi iki aʻe mai ke kauwela.

Akā ʻo nā kiʻi ʻelua e hiki mai ana ke hoʻohaʻahaʻa iki iaʻu.

Ka helu awelika o ka nānā ʻana i kēlā me kēia ʻatikala:

Habrastatistics: pehea ke ola ʻana o Habr me ka ʻole o ka manawa

Ka helu maʻamau no kēlā me kēia ʻatikala:

Habrastatistics: pehea ke ola ʻana o Habr me ka ʻole o ka manawa

E like me kāu e ʻike ai, ua emi iki ka awelika o ka nānā ʻana i ka makahiki. Hiki ke wehewehe ʻia kēia ma ka ʻike ʻana ʻaʻole i kuhikuhi ʻia nā ʻatikala hou e nā ʻenekini huli, a ʻaʻole i ʻike pinepine ʻia. Akā ʻoi aku ka maopopo ʻole o ka emi ʻana o ka helu awelika no kēlā me kēia ʻatikala. ʻO ka manaʻo, ʻaʻohe manawa o ka poʻe heluhelu e nānā i nā ʻatikala he nui a ʻaʻole hoʻolohe i nā helu. Mai ka manaʻo o ka papahana uku o ka mea kākau, ʻoluʻolu loa kēia ʻano.

Ma ke ala, ʻaʻole i hana ʻia kēia ma 2018, a ʻoi aku ka liʻiliʻi o ka papahana.

Habrastatistics: pehea ke ola ʻana o Habr me ka ʻole o ka manawa

Ma keʻano laulā, loaʻa i nā mea waiwai kahi mea e noʻonoʻo ai.

Akā, mai kamaʻilio kākou no nā mea kaumaha. Ma ka laulā, hiki iā mākou ke ʻōlelo ua "ola" ʻo Habr i ke kauwela i hoʻololi maikaʻi ʻia, a ʻaʻole i emi ka helu o nā ʻatikala ma ka pūnaewele.

Ka helu inoa

I kēia manawa, ʻoiaʻiʻo, ka helu. Hoʻomaikaʻi i ka poʻe i komo i loko. E hoʻomanaʻo hou wau iā ʻoe ʻaʻole i mana ka helu, malia paha ua nalo wau i kekahi mea, a inā pono kekahi ʻatikala ma aneʻi, akā ʻaʻole ia, e kākau, e hoʻohui wau me ka lima. Ma ke ʻano he helu, hoʻohana wau i nā metric i helu ʻia, aʻu i manaʻo ai he mea hoihoi loa ia.

Nā ʻatikala kiʻekiʻe ma ka helu o nā manaʻo

ʻO nā ʻatikala kiʻekiʻe ma ka helu ʻana i nā ʻike

ʻO nā ʻatikala kiʻekiʻe ma nā manaʻo i ka ratio ʻike

ʻO nā ʻatikala hoʻopaʻapaʻa nui loa

Nā ʻatikala kiʻekiʻe ma ka helu

Nā ʻatikala kiʻekiʻe ma ka helu o nā bookmark

Kiʻekiʻe ma ka ratio o nā bookmarks i nā nānā

Nā ʻatikala kiʻekiʻe ma ka helu o nā manaʻo

A ʻo ka mea hope loa Antitop ma ka helu o nā makemake ʻole

ʻAe. He mau koho hoihoi hou ko'u, aka, aole au e hooluhi i ka poe heluhelu.

hopena

I ke kūkulu ʻana i ka helu, ua hoʻolohe au i ʻelua mau mea i manaʻo ʻia he hoihoi.

ʻO ka mea mua, ʻo 60% o ka luna nā ʻatikala o ke ʻano "geektimes". Inā he liʻiliʻi paha o lākou i ka makahiki e hiki mai ana, a he aha ke ʻano o Habr me ka ʻole o nā ʻatikala e pili ana i ka pia, space, lāʻau lapaʻau, etc., ʻaʻole wau ʻike. ʻOiaʻiʻo, e nalowale ka poʻe heluhelu i kekahi mea. E nana kakou.

ʻO ka lua, ua ʻike ʻia nā bookmark kiʻekiʻe i ke ʻano kiʻekiʻe kiʻekiʻe. Hiki ke hoʻomaopopo i ka psychologically; ʻaʻole paha e nānā ka poʻe heluhelu i ka helu, akā inā ʻo ka ʻatikala pono, a laila e hoʻohui ʻia i kāu mau bookmark. A eia nō ka manaʻo nui o nā ʻatikala pono a koʻikoʻi. Manaʻo wau e noʻonoʻo nā mea nona ka pūnaewele ma o ka pilina ma waena o ka helu o nā bookmark a me ka papahana uku inā makemake lākou e hoʻonui i kēia ʻano o nā ʻatikala ma Habré.

ʻO kekahi mea e like me kēia. Manaʻo wau he mea ʻike.

Ua lōʻihi ka papa inoa o nā ʻatikala, ʻoi aku ka maikaʻi. Hauʻoli ka heluhelu ʻana a pau.

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka