Ke eng e ka senyehang ka Data Science? Pokello ea lintlha

Ke eng e ka senyehang ka Data Science? Pokello ea lintlha
Kajeno ho na le lithuto tsa 100500 Data Science 'me ke khale ho tsejoa hore chelete e ngata ka ho fetisisa ho Data Science e ka fumanoa ka lithuto tsa Data Science (ke hobane'ng ha u cheka ha u ka rekisa likharafu?). Bothata bo boholo ba lithuto tsena ke hore ha li amane le mosebetsi oa 'nete: ha ho motho ea tla u fa data e hloekileng, e hlophisitsoeng ka mokhoa o hlokahalang. 'Me ha u tloha thupelong' me u qala ho rarolla bothata ba sebele, ho hlaha li-nuances tse ngata.

Ka hona, re qala letoto la lintlha "Ke eng e ka senyehang ka Data Science", ho itšetlehile ka liketsahalo tsa sebele tse etsahetseng ho 'na, metsoalle ea ka le basebetsi-'moho. Re tla sekaseka mesebetsi e tloaelehileng ea Science Science re sebelisa mehlala ea 'nete: hore na sena se hlile se etsahala joang. Ha re qale kajeno ka mosebetsi oa ho bokella lintlha.

'Me ntho ea pele eo batho ba khoptjoang ka eona ha ba qala ho sebetsa ka data ea sebele ke ho bokella data ena e bohlokoa haholo ho rona. Molaetsa oa bohlokoa oa sengoloa sena:

Re nyenyefatsa nako, lisebelisoa le boikitlaetso bo hlokahalang ho bokella, ho hloekisa le ho lokisa lintlha.

Mme sa bohlokwa le ho feta, re tla tshohla seo re lokelang ho se etsa ho thibela sena.

Ho ea ka likhakanyo tse fapa-fapaneng, ho hloekisa, phetoho, ts'ebetso ea data, tšobotsi ea boenjiniere, joalo-joalo nka 80-90% ea nako, le tlhahlobo ea 10-20%, ha hoo e batlang e le lisebelisoa tsohle tsa thuto li shebane feela le tlhahlobo.

Ha re shebeng bothata bo bonolo ba tlhahlobo liphetolelong tse tharo joalo ka mohlala o tloaelehileng 'me re bone hore na "maemo a mpefatsang" ke eng.

'Me e le mohlala, hape, re tla nahana ka mefuta e fapaneng ea mosebetsi oa ho bokella lintlha le ho bapisa sechaba bakeng sa:

  1. Li-subreddits tse peli tsa Reddit
  2. Likarolo tse peli tsa Habr
  3. Lihlopha tse peli tsa Odnoklassniki

Mokhoa oa maemo ka khopolo

Bula sebaka sena 'me u bale mehlala, haeba e hlakile, behella ka thōko lihora tse seng kae bakeng sa ho bala, lihora tse seng kae bakeng sa khoutu u sebelisa mehlala le ho lokisa liphoso. Kenya lihora tse 'maloa ho bokella. Lahlela lihora tse 'maloa sebakeng sa polokelo ( atisa ka tse peli ebe u eketsa lihora tse N).

Ntlha ea Bohlokoa: Likhakanyo tsa nako li ipapisitse le likhakanyo le khakanyo ea hore na e tla nka nako e kae.

U hloka ho qala tlhahlobo ea nako ea hau ka ho hakanya liparamente tse latelang bakeng sa bothata ba maemo bo hlalositsoeng ka holimo:

  • Ke boholo bofe ba data le hore na ke bokae ba eona bo lokelang ho bokelloa 'meleng (* sheba ka tlase *).
  • Nako ea pokello ea rekoto e le 'ngoe ke nako e kae, 'me u tlameha ho ema nako e kae pele u ka bokella ea bobeli?
  • Nahana ka khoutu ea ho ngola e bolokang mmuso mme e qala ho qala bocha ha (eseng haeba) tsohle li hloleha.
  • Bona hore na re hloka tumello 'me u behe nako ea ho fumana phihlello ka API.
  • Beha palo ea liphoso e le mosebetsi oa ho rarahana ha data - hlahloba bakeng sa mosebetsi o itseng: sebopeho, liphetoho tse kae, eng le mokhoa oa ho ntša.
  • Lokisa liphoso tsa marang-rang le mathata ka boitšoaro bo sa tloaelehang ba morero.
  • Hlahloba hore na mesebetsi e hlokahalang e teng litokomaneng 'me haeba ho se joalo, joale ho hlokahala bokae le bokae bakeng sa workaround.

Ntho ea bohlokoa ka ho fetisisa ke hore e le hore u hakanye nako - ha e le hantle u hloka ho qeta nako le boiteko ho "reconnaissance in force" - feela ka nako eo moralo oa hau o tla ba o lekaneng. Ka hona, ho sa tsotellehe hore na u susumelletseha hakae ho re "ho nka nako e kae ho bokella data" - ithekela nako bakeng sa tlhahlobo ea pele 'me u phehe khang ka hore na nako e tla fapana hakae ho itšetlehile ka litekanyetso tsa sebele tsa bothata.

'Me joale re tla bontša mehlala e tobileng moo liparamente tse joalo li tla fetoha.

Ntlha ea Bohlokoa: Khakanyo e ipapisitse le tlhahlobo ea lintlha tsa bohlokoa tse susumetsang boholo le ho rarahana ha mosebetsi.

Khakanyo e thehiloeng monahanong ke mokhoa o motle ha likarolo tse sebetsang li le nyenyane ka ho lekaneng 'me ho se na lintlha tse ngata tse ka susumetsang moralo oa bothata haholo. Empa tabeng ea mathata a mangata a Saense ea Data, lintlha tse joalo li ba ngata haholo 'me mokhoa o joalo o fetoha o sa lekaneng.

Papiso ea sechaba sa Reddit

Ha re qale ka nyeoe e bonolo ka ho fetisisa (joalo ka ha e etsahala hamorao). Ka kakaretso, ho bua 'nete ka botlalo, re na le nyeoe e batlang e le e loketseng, a re hlahlobeng lethathamo la rona la ho rarahana:

  • Ho na le API e makhethe, e hlakileng le e ngotsoeng.
  • E bonolo haholo ebile e bohlokoa ka ho fetesisa, letšoao le fumanoa ka bohona.
  • Ho na le sekoahelo sa python - ka mehlala e mengata.
  • Sechaba se sekasekang le ho bokella datha ho reddit (esita le livideo tsa YouTube tse hlalosang mokhoa oa ho sebelisa python wrapper) Ka mohlala.
  • Mekhoa eo re e hlokang haholo e teng ho API. Ho feta moo, khoutu e shebahala e kopane ebile e hloekile; ka tlase ke mohlala oa ts'ebetso e bokellang maikutlo ho poso.

def get_comments(submission_id):
    reddit = Reddit(check_for_updates=False, user_agent=AGENT)
    submission = reddit.submission(id=submission_id)
    more_comments = submission.comments.replace_more()
    if more_comments:
        skipped_comments = sum(x.count for x in more_comments)
        logger.debug('Skipped %d MoreComments (%d comments)',
                     len(more_comments), skipped_comments)
    return submission.comments.list()

E nkiloeng ho tloha sena khetho ea lisebelisoa tse bonolo tsa ho phuthela.

Leha taba ea hore ena ke eona e ntle ka ho fetisisa, ho ntse ho le bohlokoa ho ela hloko lintlha tse 'maloa tsa bohlokoa tse tsoang bophelong ba nnete:

  • Meeli ea API - re qobelloa ho nka data ka lihlopha (ho robala pakeng tsa likopo, joalo-joalo).
  • Nako ea pokello - bakeng sa tlhahlobo e felletseng le papiso, o tla tlameha ho behella nako ea bohlokoa ka thoko hore sekho se tsamaee ka har'a subreddit.
  • Bot e tlameha ho sebetsa ho seva - u ke ke ua e tsamaisa feela ho laptop ea hau, e behe ka mokotleng oa hau, ebe u tsoela pele ka khoebo ea hau. Kahoo ke ile ka matha ntho e 'ngoe le e' ngoe ka VPS. U sebelisa khoutu ea papatso habrahabr10 u ka boloka 10% e 'ngoe ea litšenyehelo.
  • Ho se fihlellehe ha data e itseng (li bonahala ho batsamaisi kapa ho thata haholo ho li bokella) - sena se tlameha ho nahanoa; ha e le hantle, ha se data eohle e ka bokelloang ka nako e lekaneng.
  • Liphoso tsa marang-rang: Marang-rang ke bohloko.
  • Ena ke data ea 'nete - ha ho mohla e hloekileng.

Ehlile, hoa hlokahala ho kenyelletsa li-nuances tsena ho nts'etsopele. Lihora / matsatsi a khethehileng a itšetlehile ka phihlelo ea tsoelo-pele kapa phihlelo ea ho sebetsa mesebetsing e tšoanang, leha ho le joalo, rea bona hore mona mosebetsi ke boenjiniere feela 'me ha o hloke mekhatlo e eketsehileng ea' mele ho rarolla - ntho e 'ngoe le e' ngoe e ka hlahlojoa hantle, e reriloe le ho etsoa.

Papiso ea likarolo tsa Habr

Ha re feteleng tabeng e khahlisang le eo e seng ea bohlokoa haholo ea ho bapisa likhoele le/kapa likarolo tsa Habr.

Ha re hlahlobeng lethathamo la rona la ho rarahana - mona, e le hore u utloisise ntlha e 'ngoe le e' ngoe, u tla tlameha ho cheka hanyenyane mosebetsing ka boeona le ho etsa liteko.

  • Qalong u nahana hore ho na le API, empa ha e eo. E, e, Habr o na le API, empa ha e fumanehe ho basebelisi (kapa mohlomong ha e sebetse ho hang).
  • Ebe u qala ho arola html - "likopo tsa ho reka", ho ka senyeha joang?
  • Joang ho hlalosa? Mokhoa o bonolo le o sebelisoang khafetsa ke oa ho pheta-pheta li-ID, hlokomela hore ha se ona o sebetsang ka ho fetesisa mme o tla tlameha ho sebetsana le linyeoe tse fapaneng - mohlala ke ona oa ho teteana ha li-ID tsa 'nete har'a tsohle tse teng.

    Ke eng e ka senyehang ka Data Science? Pokello ea lintlha
    E nkiloeng ho tloha sena Lingoloa.

  • Lintlha tse tala tse phuthetsoeng ka HTML holim'a tepo ke bohloko. Mohlala, o batla ho bokella le ho boloka lintlha tsa sengoloa: o tlositse lintlha ho tsoa ho html mme oa etsa qeto ea ho e boloka e le nomoro bakeng sa ts'ebetso e tsoelang pele: 

    1) int(score) e lahlela phoso: kaha ho Habré ho na le ho fokotsa, joalo ka mohlala, moleng "-5" - ena ke en dash, eseng letšoao la ho tlosa (ka tšohanyetso, ho joalo?), kahoo ho ka nako e 'ngoe ke ile ka tlameha ho tsosa parser bophelong ka tokiso e mpe hakana.

    try:
          score_txt = post.find(class_="score").text.replace(u"–","-").replace(u"+","+")
          score = int(score_txt)
          if check_date(date):
            post_score += score
    

    Ho ka 'na ha se ke ha e-ba le letsatsi, li-pluses le li-minus ho hang (joalokaha re bona ka holimo mosebetsing oa check_date, sena se etsahetse).

    2) Litlhaku tse khethehileng tse sa kang tsa phonyoha - li tla tla, u hloka ho itokisetsa.

    3) Sebopeho se fetoha ho latela mofuta oa poso.

    4) Lits'oants'o tsa khale li ka ba le ** sebopeho se makatsang **.

  • Ha e le hantle, ho sebetsana le liphoso le se ka 'nang sa etsahala kapa se ke keng sa etsahala se tla tlameha ho sebetsoa 'me u ke ke ua bolela esale pele hore na ho tla senyeha joang le hore na mohaho o ka ba joang le hore na o tla oela hokae - o tla tlameha feela ho leka ho ela hloko. liphoso tseo mohlahlobisisi a di lahlelang.
  • Ebe u elelloa hore u hloka ho arola likhoele tse 'maloa, ho seng joalo ho arola ho e le' ngoe ho tla nka lihora tse 30+ (ena ke nako ea ts'ebetso ea motho ea seng a ntse a sebetsa ea khoele e le 'ngoe, ea robalang mme a sa oela tlas'a lithibelo). IN sena Sehloohong sena, ka nako e 'ngoe sena se ile sa lebisa morerong o tšoanang:

Ke eng e ka senyehang ka Data Science? Pokello ea lintlha

Lethathamo le felletseng la ho rarahana:

  • Ho sebetsa le marang-rang le html ho arola ka ho pheta-pheta le ho batla ka ID.
  • Litokomane tsa sebopeho se fapaneng.
  • Ho na le libaka tse ngata moo khoutu e ka oelang habonolo.
  • Hoa hlokahala ho ngola || khoutu.
  • Litokomane tse hlokahalang, mehlala ea khoutu, le / kapa sechaba ha se eo.

Nako e lekantsoeng ea mosebetsi ona e tla ba makhetlo a 3-5 ho feta ho bokella data ho tsoa ho Reddit.

Papiso ea lihlopha tsa Odnoklassniki

Ha re feteleng ho nyeoe e khahlisang haholo e hlalositsoeng. Ho 'na, e ne e khahla hantle hobane ha u habanya feela, e shebahala e le nyane, empa ha ea ka ea ba joalo ho hang - hang ha u e hlaba ka molamu.

Ha re qaleng ka lethathamo la rona la mathata 'me re hlokomele hore tse ngata tsa tsona li tla ba thata ho feta kamoo li shebahalang kateng pele:

  • Ho na le API, empa e batla e haelloa ke mesebetsi e hlokahalang.
  • Ho lits'ebetso tse itseng o hloka ho kopa phihlello ka poso, ke hore, ho fana ka phihlello ha se hang-hang.
  • E ngotsoe ka mokhoa o tšabehang (ho qala, mantsoe a Serussia le Senyesemane a tsoakane hohle, 'me ka ho feletseng - ka linako tse ling u hloka feela ho hakanya seo ba se batlang ho uena kae-kae)' me, ho feta moo, moralo ha o loketse ho fumana data, mohlala. , mosebetsi oo re o hlokang.
  • E hloka thuto litokomaneng, empa ha e hlile ha e e sebelise - 'me ha ho na mokhoa oa ho utloisisa mathata ohle a mekhoa ea API ntle le ho ts'oara le ho tšepa hore ho na le ho tla sebetsa.
  • Ha ho na mehlala ebile ha ho sechaba; ntlha e le 'ngoe feela ea tšehetso ho bokelleng tlhahisoleseling ke e nyane hlakola ho Python (ntle le mehlala e mengata ea tšebeliso).
  • Selenium e bonahala e le khetho e sebetsang ka ho fetisisa, kaha lintlha tse ngata tse hlokahalang li notletsoe.
    1) Ke hore, tumello e etsahala ka mosebelisi ea iqapetsoeng (le ho ngolisoa ka letsoho).

    2) Leha ho le joalo, ka Selenium ha ho na tiiso bakeng sa mosebetsi o nepahetseng le o ka phetoang (bonyane tabeng ea ok.ru ka sebele).

    3) Webosaete ea Ok.ru e na le liphoso tsa JavaScript mme ka linako tse ling e itšoara ka mokhoa o makatsang le o sa tsitsang.

    4) U hloka ho etsa pagination, ho kenya likarolo, joalo-joalo ...

    5) Liphoso tsa API tseo sekoahelo se fanang ka tsona li tla tlameha ho sebetsoa ka mokhoa o sa thabiseng, mohlala, tjena (karoloana ea khoutu ea liteko):

    def get_comments(args, context, discussions):
        pause = 1
        if args.extract_comments:
            all_comments = set()
    #makes sense to keep track of already processed discussions
            for discussion in tqdm(discussions): 
                try:
                    comments = get_comments_from_discussion_via_api(context, discussion)
                except odnoklassniki.api.OdnoklassnikiError as e:
                    if "NOT_FOUND" in str(e):
                        comments = set()
                    else:
                        print(e)
                        bp()
                        pass
                all_comments |= comments
                time.sleep(pause)
            return all_comments
    

    Phoso eo ke e ratang haholo e bile:

    OdnoklassnikiError("Error(code: 'None', description: 'HTTP error', method: 'discussions.getComments', params: …)”)

    6) Qetellong, Selenium + API e shebahala e le khetho e utloahalang ka ho fetisisa.

  • Hoa hlokahala ho boloka mmuso le ho qala sistimi hape, ho sebetsana le liphoso tse ngata, ho kenyelletsa le boits'oaro bo sa tsitsang ba sebaka sa marang-rang - mme liphoso tsena li thata ho nahana (ntle le haeba u ngola li-parsers ka botsebi, ehlile).

Khakanyo ea nako e behiloeng bakeng sa mosebetsi ona e tla ba makhetlo a 3-5 ho feta ea ho bokella lintlha ho tsoa ho Habr. Ho sa tsotellehe taba ea hore tabeng ea Habr re sebelisa mokhoa o ka pele o nang le HTML parsing, 'me tabeng ea OK re ka sebetsa le API libakeng tse mahlonoko.

fumanoeng ke

Ho sa tsotelehe hore na ho hlokahala bokae ho hakanya linako tsa nako "ka nako eo" (re ntse re rera kajeno!) ea mojule oa phaephe ea ts'ebetso ea data, nako ea ts'ebetso e batla e sa khonehe ho lekanya le ka boleng ntle le ho sekaseka maemo a mosebetsi.

Ho latela lintlha tsa filosofi, maqheka a khale a ho hakanya a sebetsa hantle bakeng sa mesebetsi ea boenjiniere, empa mathata a lekang ho feta, 'me ka tsela e itseng, "a boqapi" le a ho hlahloba, ke hore, a ke keng a lebelloa, a na le mathata, joalo ka mehlala ea lihlooho tse ts'oanang , tseo re buileng ka tsona mona.

Ehlile, pokello ea lintlha ke mohlala oa mantlha - hangata ke mosebetsi o bonolo ka mokhoa o makatsang ebile o sa rarahana, 'me diabolose hangata o qolla lintlha. 'Me ke hantle mosebetsing ona moo re ka bontšang mefuta eohle ea likhetho tse ka khonehang bakeng sa se ka senyehang le hore na mosebetsi o ka nka nako e kae.

Haeba u sheba litšobotsi tsa mosebetsi ntle le liteko tse eketsehileng, joale Reddit le OK li shebahala li tšoana: ho na le API, sekoahelo sa python, empa ha e le hantle, phapang e kholo. Ho latela liparamente tsena, pars ea Habr e shebahala e rarahane ho feta OK - empa ts'ebetsong e fapane haholo, 'me sena ke sona se ka fumanoang ka ho etsa liteko tse bonolo ho sekaseka maemo a bothata.

Ka phihlelo ea ka, mokhoa o atlehang ka ho fetisisa ke ho hakanya nako eo u tla e hloka bakeng sa tlhahlobo ea pele ka boeona le liteko tse bonolo tsa pele, ho bala litokomane - tsena li tla u lumella ho fana ka tekanyo e nepahetseng bakeng sa mosebetsi oohle. Mabapi le mokhoa o tsebahalang oa agile, ke u kopa hore u thehe tekete ea "mekhahlelo ea ho lekanya mosebetsi", motheong oa hore nka fana ka tlhahlobo ea se ka finyelloang ka har'a "sprint" le ho fana ka tekanyetso e nepahetseng bakeng sa e 'ngoe le e 'ngoe. mosebetsi.

Ka hona, khang e sebetsang ka ho fetisisa e bonahala e le e 'ngoe e neng e tla bontša setsebi "se seng sa theknoloji" hore na ke nako e kae le lisebelisoa tse tla fapana ho itšetlehile ka litekanyetso tse e-s'o hlahlojoe.

Ke eng e ka senyehang ka Data Science? Pokello ea lintlha

Source: www.habr.com

Eketsa ka tlhaloso