Habrastatistics: hvordan Habr lever uden nørdetider
Hej Habr.
Denne artikel er en logisk fortsættelse af vurderingen De bedste artikler fra Habr for 2018. Og selvom året ikke er omme endnu, men som bekendt skete der ændringer i reglerne i sommeren, så det blev interessant at se, om det fik noget ud af det.
Udover selve statistikken vil der også være en opdateret vurdering af artikler, samt nogle kilder til dem, der er interesserede i, hvordan det fungerer.
For dem, der er interesseret i, hvad der skete, fortsatte under skæringen. De, der er interesseret i en mere detaljeret analyse af sektionerne på siden, kan også kigge på næste del.
Indledende data
Denne vurdering er uofficiel, og jeg har ingen insiderdata. Da det er nemt at se ved at se på adresselinjen i browseren, har alle artikler på Habré løbende nummerering. Så er det et spørgsmål om teknik, bare i en cyklus læser vi alle artiklerne i træk (i én tråd og med pauser for ikke at indlæse serveren). Selve værdierne blev opnået af en simpel Python-parser (der er kilder her) og gemt i en csv-fil som denne:
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
Behandling
Til parsing vil vi bruge Python, Pandas og Matplotlib. De, der ikke er interesserede i statistik, kan springe denne del over og gå direkte til artiklerne.
Først skal du indlæse datasættet i hukommelsen og vælge data for det ønskede år.
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)
Det viser sig, at der i år (selv om det ikke er slut endnu) i skrivende stund er publiceret 12715 artikler. Til sammenligning, for hele 2018 - 15904. Generelt meget - det drejer sig om 43 artikler om dagen (og det er kun med en positiv vurdering, hvor mange artikler der er indlæst i alt, der er blevet negative eller er blevet slettet, man kan kun gætte eller groft estimere ved udeladelser blandt identifikatorer).
Vælg de påkrævede felter fra datasættet. Som målinger vil vi bruge antallet af visninger, kommentarer, vurderingsværdier og antallet af bogmærker.
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
Nu er dataene blevet tilføjet til datasættet, og vi kan bruge dem. Lad os gruppere dataene efter dage og tage gennemsnitsværdierne.
Resultatet er interessant. Som du kan se, var Habr lidt "pølse" i løbet af året. Jeg kender ikke årsagen.
Til sammenligning ser 2018 lidt "glattere" ud:
Generelt så jeg ikke noget drastisk fald i antallet af publicerede artikler i 2019 på diagrammet. Desuden ser den tværtimod ud til at være vokset lidt siden sommeren.
Men de næste to grafer trykker mig lidt mere.
Gennemsnitlige visninger pr. artikel:
Gennemsnitlig bedømmelse pr. artikel:
Som du kan se, er det gennemsnitlige antal visninger i løbet af året en smule reduceret. Dette kan forklares med, at nye artikler endnu ikke er blevet indekseret af søgemaskiner, og de findes ikke så ofte. Men faldet i den gennemsnitlige vurdering pr. artikel er mere uforståeligt. Følelsen er, at læserne enten simpelthen ikke har tid til at se så mange artikler eller ikke er opmærksomme på vurderingerne. Set fra forfatteropmuntringsprogrammets synspunkt er denne tendens meget ubehagelig.
Sådan var det i øvrigt ikke i 2018, og tidsplanen er mere eller mindre jævn.
Generelt har ressourceejere noget at tænke over.
Men lad os ikke tale om triste ting. Generelt kan vi sige, at Habr "overlevede" sommerændringerne ganske vellykket, og antallet af artikler på webstedet er ikke faldet.
Rating
Nu faktisk vurderingen. Tillykke til dem, der kom ind i det. Lad mig igen minde dig om, at vurderingen er uofficiel, måske er jeg gået glip af noget, og hvis en artikel helt sikkert skulle være her, men det er den ikke, så skriv, jeg tilføjer den manuelt. Som vurdering bruger jeg beregnede metrics, som jeg synes viste sig at være ret interessant.
Uff. Jeg har et par mere interessante udvalg, men jeg vil ikke kede læserne.
Konklusion
Da jeg konstruerede vurderingen, var jeg opmærksom på to punkter, der virkede interessante.
For det første er 60% af toppen trods alt artikler af "geektimes"-genren. Om der bliver færre af dem næste år, og hvordan Habr kommer til at se ud uden artikler om øl, rum, medicin og så videre - det ved jeg ikke. Læserne vil bestemt gå glip af noget. Lad os se.
For det andet viste bogmærke-toppen sig at være af uventet høj kvalitet. Dette er psykologisk forståeligt, læserne kan ikke være opmærksomme på vurderingen, og hvis artiklen er nødvendig, så føjes det til bogmærkerne. Og her er blot den største koncentration af nyttige og seriøse artikler. Jeg synes, at webstedsejerne på en eller anden måde skal tænke over sammenhængen mellem antallet af bogmærker og belønningsprogrammet, hvis de vil øge netop denne kategori af artikler her på Habré.
Sådan noget. Jeg håber det var informativt.
Listen over artikler viste sig at være lang, ja, det er nok for det bedste. God læsning alle sammen.