Kif analizzajt Habr, parti 1: xejriet

Meta spiċċa l-Olivier tal-Ewwel tas-Sena, ma kelli xejn x'nagħmel, u ddeċidejt li tniżżel l-artikoli kollha minn Habrahabr (u pjattaformi relatati) fuq il-kompjuter tiegħi u nesplora.

Kien hemm diversi stejjer interessanti. L-ewwel wieħed minnhom huwa l-iżvilupp tal-format u s-suġġetti tal-artikoli matul it-12-il sena tal-eżistenza tas-sit. Pereżempju, id-dinamika ta 'xi suġġetti hija pjuttost indikattiva. Kontinwazzjoni - taħt il-qatgħa.

Kif analizzajt Habr, parti 1: xejriet

Proċess ta 'parsing

Biex tifhem kif żviluppa Habr, kien meħtieġ li jgħaddi mill-artikoli kollha tiegħu u estratt meta-informazzjoni minnhom (per eżempju, dati). Il-bypass kien faċli, għax il-links għall-artikoli kollha jidhru bħal "habrahabr.ru/post/337722/", u n-numri jingħataw strettament f'ordni. Billi naf li l-aħħar post għandu numru ftit inqas minn 350 elf, għadni kemm għaddejt mill-id tad-dokument kollu possibbli f'linja (kodiċi Python):

import numpy as np
from multiprocessing import Pool
with Pool(100) as p:
    docs = p.map(download_document, np.arange(350000))

Funzjoni download_document jipprova jgħabbi l-paġna bl-id korrispondenti u jipprova jiġbed informazzjoni sinifikanti mill-istruttura html.

import requests
from bs4 import BeautifulSoup

def download_document(pid):
    """ Download and process a Habr document and its comments """
    # выгрузка документа
    r = requests.get('https://habrahabr.ru/post/' +str(pid) + '/')
    # парсинг документа
    soup = BeautifulSoup(r.text, 'html5lib') # instead of html.parser
    doc = {}
    doc['id'] = pid
    if not soup.find("span", {"class": "post__title-text"}):
        # такое бывает, если статья не существовала или удалена
        doc['status'] = 'title_not_found'
    else:
        doc['status'] = 'ok'
        doc['title'] = soup.find("span", {"class": "post__title-text"}).text
        doc['text'] = soup.find("div", {"class": "post__text"}).text
        doc['time'] = soup.find("span", {"class": "post__time"}).text
        # create other fields: hubs, tags, views, comments, votes, etc.
        # ...
    # сохранение результата в отдельный файл
    fname = r'files/' + str(pid) + '.pkl'
    with open(fname, 'wb') as f:
        pickle.dump(doc, f)

Fil-proċess ta 'parsing, skoprejt diversi affarijiet ġodda.

L-ewwel, jgħidu li l-ħolqien ta 'aktar proċessi milli hemm cores fil-proċessur huwa inutli. Iżda fil-każ tiegħi, irriżulta li r-riżors li jillimita mhuwiex il-proċessur, iżda n-netwerk, u 100 proċess jaħdmu aktar malajr minn 4 jew, ngħidu aħna, 20.

It-tieni, f'xi postijiet kien hemm kombinazzjonijiet ta 'karattri speċjali - per eżempju, ewfemismi bħal "%&#@". Irriżulta li html.parser, li użajt l-ewwel, jirreaġixxi għall-kombinazzjoni &# bi tbatija, meta jitqies il-bidu tal-entità html. Kont diġà se nagħmel il-maġija sewda, iżda l-forum issuġġerixxa li tista 'biss tibdel il-parser.

It-tielet, irnexxieli nħatt il-pubblikazzjonijiet kollha, ħlief għal tlieta. Id-dokumenti numerati 65927, 162075, u 275987 tħassru istantanjament mill-antivirus tiegħi. Dawn huma artikli, rispettivament, dwar katina javascript li tniżżel pdf malizzjuż, SMS ransomware fil-forma ta 'sett ta' plugins tal-browser, u s-sit CrashSafari.com li jibgħat iPhones f'reboot. Antivirus skopra artiklu ieħor aktar tard, waqt skan tas-sistema: post 338586 dwar skripts fuq il-websajt tal-ħanut tal-annimali domestiċi li jużaw il-proċessur tal-utent biex minjiera l-munita kripto. Allura nistgħu nikkunsidraw li x-xogħol tal-antivirus huwa pjuttost adegwat.

L-artikoli "Live" irriżultaw li huma biss nofs il-massimu potenzjali - 166307 biċċiet. Dwar il-bqija, Habr jagħti għażliet "il-paġna hija skaduta, tħassret jew ma kienet teżisti xejn." Ukoll, kollox jista 'jiġri.

It-tlugħ tal-artikli kien segwit minn xogħol tekniku: pereżempju, id-dati tal-pubblikazzjoni kellhom jiġu kkonvertiti mill-format "'21 ta' Diċembru 2006 fl-10:47 am" għall-istandard datetime, u "12,8k" fehmiet - fl-12800. F'dan l-istadju, ħarġu ftit inċidenti oħra. L-iktar wieħed umoristiku għandu x'jaqsam mal-għadd tal-voti u t-tipi tad-dejta: xi postijiet qodma kellhom int overflow u rċevew 65535 vot kull wieħed.

Kif analizzajt Habr, parti 1: xejriet

Bħala riżultat, it-testi tal-artikoli (mingħajr stampi) ħaduni 1.5 gigabytes, kummenti b'meta-informazzjoni - 3 oħra, u madwar mitt megabytes - meta-informazzjoni dwar l-artikoli. Dan jista 'jinżamm kompletament fir-RAM, li kienet sorpriża pjaċevoli għalija.

Bdejt l-analiżi tal-artikoli mhux mit-testi nfushom, iżda minn meta-informazzjoni: dati, tags, hubs, fehmiet u likes. Irriżulta li setgħet tgħid ħafna.

Xejriet ta' Żvilupp ta' Habrahabr

L-artikoli fuq is-sit ilhom ippubblikati mill-2006; bl-aktar mod intensiv - fl-2008-2016.

Kif analizzajt Habr, parti 1: xejriet

Kemm inqraw b’mod attiv dawn l-artikoli fi żminijiet differenti mhuwiex daqshekk faċli biex jiġi vvalutat. Testi mill-2012 u iżgħar irċevew aktar kummenti u klassifikazzjonijiet, iżda testi aktar ġodda għandhom aktar fehmiet u bookmarks. Dawn il-metriċi ġabu ruħhom bl-istess mod (naqqas bin-nofs) darba biss, fl-2015. Forsi, f'sitwazzjoni ta' kriżi ekonomika u politika, l-attenzjoni tal-qarrejja nbidlet minn blogs tal-IT għal kwistjonijiet aktar koroh.

Kif analizzajt Habr, parti 1: xejriet

Minbarra l-artikoli nfushom, niżżilthom aktar kummenti. Kien hemm 6 miljun kumment, madankollu, 240 elf minnhom ġew ipprojbiti ("UFO tellgħu u ppubblikat din l-iskrizzjoni hawn"). Proprjetà utli tal-kummenti hija li għandhom timbru tal-ħin. Billi tistudja l-ħin tal-kummenti, tista' tifhem bejn wieħed u ieħor meta jinqraw l-artikoli.

Irriżulta li ħafna mill-artikli huma kemm miktuba kif ukoll ikkummentati xi mkien mill-10 am sat-20 pm, i.e. f’ġurnata tax-xogħol tipika ta’ Moska. Dan jista 'jfisser li Habr jinqara għal skopijiet professjonali, u li dan huwa mod tajjeb biex tipprokrastinaw fuq ix-xogħol. Mill-mod, din id-distribuzzjoni tal-ħin tal-ġurnata hija stabbli mill-fondazzjoni stess ta 'Habr sal-lum.

Kif analizzajt Habr, parti 1: xejriet

Madankollu, il-benefiċċju ewlieni ta 'timestamp ta' kumment mhuwiex il-ħin tal-ġurnata, iżda t-tul tal-"ħajja attiva" tal-artikolu. I kkalkolat kif jitqassam il-ħin mill-pubblikazzjoni tal-artiklu sal-kumment tiegħu. Irriżulta li issa l-kumment medjan (linja ħadra) jiġi f’madwar 20 siegħa, i.e. fl-ewwel jum wara l-pubblikazzjoni, bħala medja, jitħallew ftit aktar minn nofs il-kummenti kollha dwar l-artiklu. U f’jumejn iħallu 75% tal-kummenti kollha. Fl-istess ħin, artikli preċedenti inqraw saħansitra aktar malajr - pereżempju, fl-2010, nofs il-kummenti ġew fl-ewwel 6 sigħat.

Kif analizzajt Habr, parti 1: xejriet

Kienet sorpriża għalija li l-kummenti tawlu: in-numru medju ta’ karattri f’kumment kważi rdoppja tul il-ħajja ta’ Habr!

Kif analizzajt Habr, parti 1: xejriet

Feedback aktar faċli milli kummenti huma voti. B'differenza minn ħafna riżorsi oħra, fuq Habré tista 'tpoġġi mhux biss pluses, iżda wkoll minuses. Madankollu, il-qarrejja ma jużawx l-aħħar opportunità daqshekk spiss: is-sehem attwali ta 'dislikes huwa ta' madwar 15% tal-voti kollha mitfugħa. Kien hemm aktar, iżda maż-żmien, il-qarrejja saru aktar tajbin.

Kif analizzajt Habr, parti 1: xejriet

It-testi nfushom inbidlu maż-żmien. Pereżempju, it-tul tipiku tat-test ma jieqafx jikber b'mod kostanti mit-tnedija stess tas-sit, minkejja l-kriżijiet. F'għaxar snin, it-testi saru kważi għaxar darbiet itwal!

Kif analizzajt Habr, parti 1: xejriet

L-istil tat-testi (sa l-ewwel approssimazzjoni) inbidel ukoll. Matul l-ewwel snin tal-eżistenza ta’ Habr, pereżempju, is-sehem tal-kodiċi u n-numri fit-testi żdied:

Kif analizzajt Habr, parti 1: xejriet

Wara li fhimt id-dinamika ġenerali tas-sit, iddeċidejt li nkejjel kif inbidlet il-popolarità ta 'diversi suġġetti. Is-suġġetti jistgħu jintgħażlu awtomatikament mit-testi, iżda biex nibdew, ma tistax tivvinta mill-ġdid ir-rota, iżda tuża tikketti lesti mwaħħla mill-awturi ta 'kull artikolu. Ġibt erba’ tendenzi tipiċi fuq il-grafika. It-tema "Google" inizjalment iddominat (forsi prinċipalment minħabba SEO), iżda ilha titlef il-piż matul is-snin. Javascript kien suġġett popolari u qed ikompli jikber bil-mod, iżda t-tagħlim tal-magni beda jikseb popolarità malajr biss f'dawn l-aħħar snin. Linux, min-naħa l-oħra, baqa' ugwalment rilevanti matul l-għaxar snin.

Kif analizzajt Habr, parti 1: xejriet

Naturalment, sirt interessat f’liema suġġetti jattiraw aktar attività tal-qarrejja. I kkalkulajt in-numru medjan ta’ fehmiet, voti u kummenti f’kull suġġett. Hawn x'ġara:

  • L-aktar suġġetti meqjusa: arduino, disinn tal-web, żvilupp tal-web, diġest, links, css, html, html5, nginx, algoritmi.
  • L-iktar suġġetti "għoġobni": vkontakte, humor, jquery, opra, c, html, żvilupp tal-web, html5, css, disinn tal-web.
  • L-aktar suġġetti diskussi: opra, skype, freelance, vkontakte, ubuntu, xogħol, nokia, nginx, arduino, firefox.

Mill-mod, peress li qed inqabbel is-suġġetti, tista 'tikklassifikahom skont il-frekwenza (u tqabbel ir-riżultati ma' artiklu simili mill-2013).

  • Għas-snin kollha tal-eżistenza ta' Habr, l-aktar tags popolari (f'ordni dixxendenti) huma google, android, javascript, microsoft, linux, php, apple, java, python, programmar, startups, development, ios, startup, netwerks soċjali
  • Fl-2017, l-aktar popolari kienu javascript, python, java, android, development, linux, c++, programmar, php, c#, ios, machine learning, information security, microsoft, react

Meta tqabbel dawn il-klassifikazzjonijiet, wieħed jista 'jagħti attenzjoni, pereżempju, għall-marċ rebbieħ ta' Python u l-estinzjoni ta 'php, jew għall-"estinzjoni" ta' suġġetti tal-istartjar u ż-żieda tat-tagħlim tal-magni.

Mhux it-tikketti kollha fuq Habré għandhom kulur tematiku daqshekk ovvju. Per eżempju, hawn tużżana tag li ltaqgħu darba biss, iżda dehru umoristiċi għalija. Allura: "l-idea hija l-forza li tmexxi l-progress", "boot minn immaġni floppy disk", "Iowa State", "drama", "superalesh", "magna tal-fwar", "affarijiet li tagħmel is-Sibt", "Għandi volpi fi meat grinder", "a rriżulta bħal dejjem", "ma stajniex noħorġu b'tikketti umoristiċi". Biex tiddetermina s-suġġett ta 'artikoli bħal dawn, it-tikketti mhumiex biżżejjed - ser ikollok twettaq immudellar tematiku fuq it-testi tal-artikoli.

Analiżi aktar dettaljata tal-kontenut tal-artikoli se tkun fil-post li jmiss. L-ewwel, ser nibni mudell li jbassar in-numru ta' opinjonijiet tal-paġna għal artiklu abbażi tal-kontenut tiegħu. It-tieni nett, irrid ngħallem in-netwerk newrali biex jiġġenera testi fl-istess stil bħall-awturi ta 'Habr. Allura abbona 🙂

PS U hawn huwa l-beeped sett tad-dejta.

Sors: www.habr.com

Żid kumment