Habrastatistics: kumaha Habr hirup tanpa geektimes

Hejo Habr.

Artikel ieu mangrupa tuluyan logis tina rating Tulisan Habr pangsaéna pikeun 2018. Sareng sanaos taunna henteu acan réngsé, anjeun terang, dina usum panas aya parobihan dina aturan, sasuai, éta janten istiméwa pikeun ningali naha ieu kapangaruhan nanaon.

Habrastatistics: kumaha Habr hirup tanpa geektimes

Salian statistik sabenerna, hiji rating diropéa artikel bakal disadiakeun, kitu ogé sababaraha kode sumber pikeun maranéhanana anu kabetot dina cara gawéna.

Pikeun maranéhanana anu kabetot dina naon anu lumangsung, lajengkeun aya dina cut nu. Jalma anu kabetot dina analisis leuwih detil rupa bagian loka ogé bisa nempo bagian salajengna.

Sumber data

rating ieu teu resmi, sarta kuring teu boga informasi insider wae. Sakumaha anjeun tiasa tingali ku ningali bar alamat browser anjeun, sadaya tulisan ngeunaan Habré gaduh panomeran kontinyu. Teras éta masalah téknik, urang ngan saukur maca sadaya tulisan sakaligus dina siklus (dina hiji benang sareng jeda, supados henteu ngamuat server). Nilai-nilai sorangan dicandak ku parser basajan dina Python (sumberna sayogi di dieu) sareng disimpen dina file csv sapertos kieu:

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

carana ngokolakeun

Pikeun parsing kami bakal nganggo Python, Pandas sareng Matplotlib. Anu henteu resep kana statistik tiasa ngalangkungan bagian ieu sareng langsung kana tulisan.

Mimiti anjeun kedah ngamuat set data kana mémori sareng pilih data kanggo taun anu dipikahoyong.

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)

Tétéla taun ieu (sanajan teu acan réngsé) dina waktu nulis, 12715 artikel geus diterbitkeun. Pikeun babandingan, pikeun sakabéh 2018 - 15904. Sacara umum, loba - ieu ngeunaan 43 artikel per poé (jeung ieu ngan kalawan rating positif; sabaraha total artikel nu diundeur nu indit négatip atawa dihapus, hijina bisa nebak. atawa kira-kira estimasi tina sela diantara identifiers).

Hayu urang pilih widang nu diperlukeun tina dataset. Salaku métrik kami bakal nganggo jumlah pintonan, koméntar, nilai rating sareng jumlah téténggér.

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

Ayeuna data geus ditambahkeun kana dataset jeung urang bisa make eta. Hayu urang ngagolongkeun data dumasar dinten sareng nyandak nilai rata-rata.

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

Ayeuna bagian anu pikaresepeun nyaéta urang tiasa ningali dina grafik.

Hayu urang tingali jumlah publikasi dina Habré taun 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()

hasilna metot. Sakumaha anjeun tiasa tingali, Habr parantos janten "sosis" sakedik sapanjang taun. Kuring henteu terang alesanana.

Habrastatistics: kumaha Habr hirup tanpa geektimes

Pikeun babandingan, 2018 katingalina langkung lancar:

Habrastatistics: kumaha Habr hirup tanpa geektimes

Sacara umum, kuring henteu ningali panurunan drastis dina jumlah tulisan anu diterbitkeun dina taun 2019 dina grafik. Sumawona, sabalikna, sigana malah rada ningkat saprak usum panas.

Tapi dua grafik salajengna depress kuring saeutik leuwih.

Rata-rata jumlah pintonan per artikel:

Habrastatistics: kumaha Habr hirup tanpa geektimes

Rata-rata rating per artikel:

Habrastatistics: kumaha Habr hirup tanpa geektimes

Sakumaha anjeun tiasa tingali, jumlah rata-rata pintonan turun rada sapanjang taun. Ieu bisa dipedar ku kanyataan yén artikel anyar teu acan saestuna ku mesin pencari, sarta aranjeunna henteu kapanggih jadi mindeng. Tapi turunna rata-rata rating per artikel langkung teu kaharti. Rarasaan éta pamiarsa boh ngan saukur teu boga waktu pikeun nempo ngaliwatan jadi loba artikel atawa teu nengetan ratings. Ti sudut pandang tina program ganjaran pangarang, trend ieu pisan pikaresepeun.

Ngomong-ngomong, ieu henteu kajantenan dina 2018, sareng jadwalna langkung seueur.

Habrastatistics: kumaha Habr hirup tanpa geektimes

Sacara umum, nu boga sumberdaya boga hal mikir ngeunaan.

Tapi hayu urang ngobrol ngeunaan hal sedih. Sacara umum, urang tiasa nyebatkeun yén Habr "salamet" dina usum panas parantos rada suksés, sareng jumlah tulisan dina situs henteu turun.

rating

Ayeuna, sabenerna, rating. Gening ka nu meunang kana eta. Hayu atuh ngingetkeun anjeun sakali deui yén rating teu resmi, meureun kuring lasut hiji hal, sarta lamun sababaraha artikel pasti kudu di dieu, tapi teu, nulis, Kuring bakal nambahkeun eta sacara manual. Salaku rating, abdi nganggo metrics diitung, nu Jigana tétéla rada metot.

Top artikel dumasar jumlah pintonan

Tulisan anu paling luhur dumasar kana rasio rating kana pintonan

Artikel Top ku komentar kana rasio pintonan

Top artikel paling kontroversial

Top artikel ku rating

Top artikel dumasar jumlah tetengger

Luhur ku babandingan tetengger sareng pintonan

Tulisan luhur ku jumlah koméntar

Sareng tungtungna, anu terakhir Antitop ku jumlah henteu resep

Euh. Kuring gaduh sababaraha pilihan anu langkung narik, tapi kuring moal ngabosenkeun pamiarsa.

kacindekan

Nalika ngawangun rating, kuring nengetan dua titik anu sigana pikaresepeun.

Anu mimiti, 60% tina luhur mangrupikeun tulisan tina genre "geektimes". Naha bakal aya pangsaeutikna di antarana taun hareup, sarta naon Habr bakal kasampak kawas tanpa artikel ngeunaan bir, spasi, ubar, jeung sajabana, Kuring henteu weruh. Pasti, pamiarsa bakal kaleungitan hiji hal. Urang tingali.

Bréh, téténggér luhur tétéla janten kualitas anu teu disangka-sangka. Ieu sacara psikologis kaharti; pamiarsa bisa jadi teu nengetan rating, tapi lamun artikel peryogi, mangka bakal ditambahkeun kana tetengger anjeun. Sarta di dieu persis konsentrasi greatest artikel mangpaat tur serius. Jigana nu boga situs kedah kumaha bae pikir ngaliwatan sambungan antara jumlah tetengger jeung program ganjaran lamun maranéhna rék ngaronjatkeun kategori husus ieu artikel didieu on Habré.

Sapertos kieu. Kuring miharep éta informatif.

Daptar artikel tétéla panjang, sumur, éta meureun keur hadé. Wilujeng maca sadayana.

sumber: www.habr.com

Tambahkeun komentar