Dè as urrainn a dhol ceàrr le Saidheans Dàta? Cruinneachadh dàta

Dè as urrainn a dhol ceàrr le Saidheans Dàta? Cruinneachadh dàta
An-diugh tha 100500 cùrsa Saidheans Dàta ann agus tha fios o chionn fhada gum faodar an airgead as motha ann an Saidheans Dàta a chosnadh tro chùrsaichean Saidheans Dàta (carson a chladhach nuair as urrainn dhut sluasaidean a reic?). Is e prìomh ana-cothrom nan cùrsaichean sin nach eil dad aca ri dhèanamh ri fìor obair: cha toir duine dhut dàta glan, giullaichte anns a’ chruth a tha a dhìth. Agus nuair a dh'fhàgas tu an cùrsa agus a 'tòiseachadh a' fuasgladh fìor dhuilgheadas, nochdaidh mòran nuances.

Mar sin, tha sinn a’ tòiseachadh sreath de notaichean “Dè as urrainn a dhol ceàrr le Dàta Saidheans”, stèidhichte air tachartasan fìor a thachair dhòmhsa, mo chompanaich agus mo cho-obraichean. Nì sinn mion-sgrùdadh air gnìomhan àbhaisteach Saidheans Dàta a’ cleachdadh fìor eisimpleirean: mar a thachras seo. Feuch an tòisich sinn an-diugh leis a’ ghnìomh cruinneachadh dàta.

Agus is e a’ chiad rud a thig daoine tarsainn nuair a thòisicheas iad ag obair le fìor dhàta a bhith a’ tional an dàta seo as buntainniche dhuinne. Prìomh theachdaireachd an artaigil seo:

Bidh sinn gu riaghailteach a’ dèanamh dì-meas air an ùine, na goireasan agus an oidhirp a dh’fheumar gus dàta a chruinneachadh, a ghlanadh agus ullachadh.

Agus as cudromaiche, bruidhnidh sinn mu dè a nì sinn gus casg a chuir air seo.

A rèir diofar tuairmsean, glanadh, cruth-atharrachadh, dàta giollachd, innleadaireachd feart, msaa a 'gabhail 80-90% den ùine, agus mion-sgrùdadh 10-20%, fhad' sa bha cha mhòr a h-uile stuth foghlaim a 'cur cudrom sònraichte air mion-sgrùdadh.

Bheir sinn sùil air duilgheadas mion-sgrùdaidh sìmplidh ann an trì dreachan mar eisimpleir àbhaisteach agus faic dè a th’ ann an “suidheachaidhean nas miosa”.

Agus mar eisimpleir, a-rithist, beachdaichidh sinn air caochlaidhean coltach ris a’ ghnìomh airson dàta a chruinneachadh agus coimeas a dhèanamh eadar coimhearsnachdan airson:

  1. Dà subreddits Reddit
  2. Dà earrann de Habr
  3. Dà bhuidheann de Odnoklassniki saor an asgaidh

Dòigh-obrach cumhach ann an teòiridh

Fosgail an làrach agus leugh na h-eisimpleirean, ma tha e soilleir, cuir beagan uairean a thìde an dàrna taobh airson leughadh, beagan uairean a thìde airson a 'chòd a' cleachdadh nan eisimpleirean agus debugging. Cuir beagan uairean a thìde airson cruinneachadh. Tilg a-steach beagan uairean a thìde ann an tèarmann (iomadaich le dhà agus cuir N uair ris).

Prìomh phuing: Tha tuairmsean ùine stèidhichte air barailean agus tomhas-tomhais mu dè cho fada ’s a bheir e.

Feumar mion-sgrùdadh ùine a thòiseachadh le bhith a ’toirt tuairmse air na paramadairean a leanas airson an duilgheadas cumhach a tha air a mhìneachadh gu h-àrd:

  • Dè meud an dàta agus dè an ìre dheth a dh’ fheumar a chruinneachadh gu corporra (* faic gu h-ìosal*).
  • Dè an ùine cruinneachaidh airson aon chlàr agus dè cho fada ‘s a dh’ fheumas tu feitheamh mus urrainn dhut an dàrna fear a chruinneachadh?
  • Beachdaich air sgrìobhadh còd a shàbhaileas an stàit agus a thòisicheas ath-thòiseachadh nuair (chan ann ma dh'fhàillig) a h-uile càil.
  • Obraich a-mach a bheil feum againn air cead agus suidhich an ùine airson faighinn a-steach tron ​​​​API.
  • Suidhich an àireamh de mhearachdan mar ghnìomh iom-fhillteachd dàta - dèan measadh airson gnìomh sònraichte: structar, cia mheud cruth-atharrachadh, dè agus ciamar a tharraing thu.
  • Ceartaich mearachdan lìonra agus duilgheadasan le giùlan pròiseict neo-àbhaisteach.
  • Dèan measadh a bheil na gnìomhan riatanach anns na sgrìobhainnean agus mura h-eil, ciamar agus dè an ìre a tha a dhìth airson fuasgladh.

Is e an rud as cudromaiche, gus tuairmse a dhèanamh air ùine - gu dearbh feumaidh tu ùine agus oidhirp a chaitheamh air “taisgealadh ann an èifeachd” - is ann dìreach an uairsin a bhios do phlanadh iomchaidh. Mar sin, ge bith dè an ìre a tha thu air a phutadh gu bhith ag ràdh “dè cho fada‘ s a bheir e airson dàta a chruinneachadh” - ceannaich beagan ùine dhut fhèin airson mion-sgrùdadh tòiseachaidh agus argamaid a dhèanamh air dè an ùine a bhios ag atharrachadh a rèir fìor chrìochan na duilgheadas.

Agus a-nis seallaidh sinn eisimpleirean sònraichte far an atharraich na crìochan sin.

Prìomh phuing: Tha an tuairmse stèidhichte air mion-sgrùdadh air prìomh nithean a’ toirt buaidh air farsaingeachd agus iom-fhillteachd na h-obrach.

Tha tuairmse stèidhichte air tuairmse na dhòigh-obrach math nuair a tha na h-eileamaidean gnìomh beag gu leòr agus nach eil mòran fhactaran ann a bheir buaidh mhòr air dealbhadh na trioblaid. Ach a thaobh grunn dhuilgheadasan Saidheans Dàta, bidh na factaran sin a’ fàs gu math lìonmhor agus bidh dòigh-obrach mar sin a’ fàs neo-iomchaidh.

Coimeas eadar coimhearsnachdan Reddit

Feuch an tòisich sinn leis a 'chùis as sìmplidh (mar a nochdas e nas fhaide air adhart). San fharsaingeachd, airson a bhith gu tur onarach, tha cùis cha mhòr air leth math againn, leig dhuinn sùil a thoirt air an liosta sgrùdaidh iom-fhillteachd againn:

  • Tha API grinn, soilleir agus clàraichte ann.
  • Tha e gu math sìmplidh agus as cudromaiche, gheibhear tòcan gu fèin-ghluasadach.
  • tha pasgain python - le tòrr eisimpleirean.
  • Coimhearsnachd a bhios a’ sgrùdadh agus a’ cruinneachadh dàta air reddit (eadhon gu bhideothan YouTube a’ mìneachadh mar a chleachdas tu python wrapper) Mar eisimpleir.
  • Tha e coltach gu bheil na dòighean a dh’ fheumas sinn anns an API. A bharrachd air an sin, tha an còd a’ coimhead teann agus glan, gu h-ìosal tha eisimpleir de ghnìomh a bhios a’ cruinneachadh bheachdan air post.

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

Air a thoirt bho seo taghadh de ghoireasan goireasach airson pasgadh.

A dh 'aindeoin gur e seo a' chùis as fheàrr, tha e fhathast luachmhor a bhith a 'toirt aire do ghrunn nithean cudromach bho bheatha làitheil:

  • Crìochan API - feumaidh sinn dàta a ghabhail ann an baidsean (cadal eadar iarrtasan, msaa).
  • Ùine cruinneachaidh - airson mion-sgrùdadh agus coimeas iomlan, feumaidh tu ùine mhòr a chuir an dàrna taobh dìreach airson an damhan-allaidh coiseachd tron ​​​​subreddit.
  • Feumaidh am bot ruith air frithealaiche - chan urrainn dhut dìreach a ruith air do laptop, a chuir nad bhaga, agus a dhol timcheall do ghnìomhachas. Mar sin ruith mi a h-uile càil air VPS. A’ cleachdadh a’ chòd adhartachaidh habrahabr10 faodaidh tu 10% eile den chosgais a shàbhaladh.
  • Neo-ruigsinneachd corporra cuid de dhàta (tha iad rim faicinn do luchd-rianachd no ro dhoirbh a chruinneachadh) - feumar seo a thoirt fa-near; ann am prionnsapal, chan urrainnear a h-uile dàta a chruinneachadh ann an ùine iomchaidh.
  • Mearachdan lìonra: Tha lìonradh na phian.
  • Is e fìor dàta beò a tha seo - chan eil e a-riamh fìor.

Gu dearbh, feumar na nuances sin a thoirt a-steach don leasachadh. Tha uairean / làithean sònraichte an urra ri eòlas leasachaidh no eòlas air a bhith ag obair air gnìomhan coltach ris, ge-tà, tha sinn a’ faicinn gur e innleadaireachd a-mhàin a tha sa ghnìomh agus nach eil feum air gluasadan bodhaig a bharrachd airson fhuasgladh - faodar a h-uile dad a mheasadh, a chlàradh agus a dhèanamh gu math.

Coimeas eadar earrannan Habr

Gluaisidh sinn air adhart gu cùis nas inntinniche agus nas lugha de bhith a’ dèanamh coimeas eadar snàithleanan agus/no earrannan de Habr.

Bheir sinn sùil air an liosta sgrùdaidh iom-fhillteachd againn - an seo, gus gach puing a thuigsinn, feumaidh tu beagan a chladhach a-steach don ghnìomh fhèin agus feuchainn.

  • An toiseach tha thu a 'smaoineachadh gu bheil API ann, ach chan eil. Tha, tha, tha API aig Habr, ach chan eil e ruigsinneach do luchd-cleachdaidh (no is dòcha nach obraich e idir).
  • An uairsin tòisichidh tu a’ parsadh html - “iarrtasan in-mhalairt”, dè a dh’ fhaodadh a dhol ceàrr?
  • Ciamar a parsadh co-dhiù? Is e an dòigh as sìmplidh agus as cumanta a bhith ag aithris thairis air IDan, thoir an aire nach e seo an dòigh as èifeachdaiche agus feumaidh e diofar chùisean a làimhseachadh - seo eisimpleir de dhlùths IDan fìor am measg a h-uile gin a th’ ann.

    Dè as urrainn a dhol ceàrr le Saidheans Dàta? Cruinneachadh dàta
    Air a thoirt bho seo artaigilean.

  • Tha dàta amh air a phasgadh ann an HTML air mullach an lìn na phian. Mar eisimpleir, tha thu airson rangachadh artaigil a chruinneachadh agus a shàbhaladh: reub thu an sgòr a-mach às an html agus chuir thu romhpa a shàbhaladh mar àireamh airson tuilleadh giollachd: 

    1) int (sgòr) a’ tilgeil mearachd: oir air Habré tha minus, mar, mar eisimpleir, anns an loidhne “–5” - is e en dash a tha seo, chan e soidhne minus (gun dùil, ceart?), Mar sin aig b’ fheudar dhomh am parser a thogail beò le fuasgladh cho uamhasach.

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

    Is dòcha nach bi ceann-latha, buannachdan agus eas-bhuannachdan ann (mar a chì sinn gu h-àrd anns a’ ghnìomh check_date, thachair seo).

    2) Caractaran sònraichte gun fhuasgladh - thig iad, feumaidh tu a bhith deiseil.

    3) Bidh an structar ag atharrachadh a rèir an seòrsa post.

    4) Is dòcha gu bheil ** structar neònach ** aig seann phuist.

  • Gu bunaiteach, feumar làimhseachadh mhearachdan agus dè dh’ fhaodadh no nach tachair a làimhseachadh agus chan urrainn dhut ro-innse le cinnt dè a thèid ceàrr agus ciamar eile a dh’ fhaodadh an structar a bhith agus dè a thuiteas far - feumaidh tu feuchainn ri suim a ghabhail. na mearachdan a thilgeas am parser.
  • An uairsin tuigidh tu gum feum thu grunn snàithleanan a pharsadh, air neo ma bheir parsadh ann an aon dhiubh 30+ uairean (is e seo dìreach àm cur gu bàs parser aon-snàthainn a tha ag obair mar-thà, a bhios a ’cadal agus nach eil fo chasg). ANNS seo artaigil, lean seo aig àm air choreigin gu sgeama coltach ris:

Dè as urrainn a dhol ceàrr le Saidheans Dàta? Cruinneachadh dàta

Liosta sgrùdaidh iomlan a rèir iom-fhillteachd:

  • Ag obair leis an lìonra agus a’ parsadh html le ath-aithris agus sgrùdadh le ID.
  • Sgrìobhainnean de structar heterogeneous.
  • Tha mòran àiteachan ann far am faod an còd tuiteam gu furasta.
  • Tha feum air sgrìobhadh || còd.
  • Tha na sgrìobhainnean riatanach, eisimpleirean còd, agus / no coimhearsnachd a dhìth.

Bidh an ùine measta airson na h-obrach seo 3-5 tursan nas àirde na airson dàta a chruinneachadh bho Reddit.

Dèan coimeas eadar buidhnean Odnoklassniki

Gluaisidh sinn air adhart chun chùis as inntinniche gu teicnigeach a chaidh a mhìneachadh. Dhòmhsa, bha e inntinneach dìreach oir aig a’ chiad sealladh, tha e a’ coimhead caran beag, ach chan eil e a’ tionndadh a-mach mar sin idir - cho luath ‘s a chuireas tu maide ris.

Feuch an tòisich sinn leis an liosta sgrùdaidh duilgheadas againn agus thoir an aire gum bi mòran dhiubh tòrr nas duilghe na bha iad a’ coimhead an toiseach:

  • Tha API ann, ach cha mhòr nach eil na gnìomhan riatanach aige.
  • Airson cuid de ghnìomhan feumaidh tu ruigsinneachd iarraidh tron ​​​​phost, is e sin, chan eil toirt seachad ruigsinneachd sa bhad.
  • Tha e air a chlàradh gu h-uamhasach (an toiseach, tha teirmean Ruiseanach is Beurla air an measgachadh anns a h-uile àite, agus gu tur neo-chunbhalach - uaireannan feumaidh tu dìreach tomhas dè tha iad ag iarraidh bhuat an àiteigin) agus, a bharrachd air an sin, chan eil an dealbhadh freagarrach airson dàta fhaighinn, mar eisimpleir , an gnìomh a tha a dhìth oirnn.
  • Tha feum air seisean anns na sgrìobhainnean, ach cha bhith e ga chleachdadh gu dearbh - agus chan eil dòigh ann a bhith a’ tuigsinn cho iom-fhillte ‘s a tha na modhan API ach a bhith a’ gluasad timcheall agus an dòchas gun obraich rudeigin.
  • Chan eil eisimpleirean ann agus chan eil coimhearsnachd ann; ’s e beag an aon phuing taic ann a bhith a’ cruinneachadh fiosrachaidh paisg ann am Python (gun mòran eisimpleirean de chleachdadh).
  • Tha e coltach gur e selenium an roghainn as gnìomhaiche, leis gu bheil mòran den dàta riatanach glaiste.
    1) Is e sin, bidh ùghdarras a 'tachairt tro neach-cleachdaidh meallta (agus clàradh le làimh).

    2) Ach, le Selenium chan eil gealltanas sam bith ann airson obair cheart agus ath-aithris (co-dhiù ann an cùis ok.ru gu cinnteach).

    3) Tha mearachdan JavaScript air làrach-lìn Ok.ru agus uaireannan bidh e gan giùlan fhèin gu neònach agus neo-chunbhalach.

    4) Feumaidh tu duilleagachadh, luchdachadh eileamaidean, msaa ...

    5) Feumaidh mearachdan API a bheir am pasgan a bhith air an làimhseachadh gu neònach, mar eisimpleir, mar seo (pìos de chòd deuchainneach):

    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
    

    B’ e am mearachd as fheàrr leam:

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

    6) Aig a 'cheann thall, tha coltas gu bheil Selenium + API mar an roghainn as reusanta.

  • Feumar an stàit a shàbhaladh agus an siostam ath-thòiseachadh, làimhseachadh mòran mhearachdan, a ’toirt a-steach giùlan neo-chunbhalach na làraich - agus tha na mearachdan sin gu math duilich a shamhlachadh (mura sgrìobh thu parsers gu proifeasanta, gu dearbh).

Bidh an tuairmse ùine chumha airson na h-obrach seo 3-5 tursan nas àirde na airson dàta a chruinneachadh bho Habr. A dh 'aindeoin gu bheil sinn a' cleachdadh dòigh-obrach aghaidh le parsadh HTML ann an cùis Habr, agus a thaobh OK is urrainn dhuinn obrachadh leis an API ann an àiteachan riatanach.

toraidhean

Ge bith dè an ìre a dh’ fheumas tu tuairmse a dhèanamh air na cinn-latha “san spot” (tha sinn a’ dealbhadh an-diugh!) de mhodal loidhne-phìoban giollachd dàta voluminous, cha mhòr nach eil e comasach an ùine cur gu bàs eadhon a mheasadh gu càileachdail gun a bhith a’ dèanamh anailis air crìochan na h-obrach.

Air nota beagan nas feallsanachail, tha ro-innleachdan tuairmseach sùbailte ag obair gu math airson gnìomhan innleadaireachd, ach tha duilgheadasan aig duilgheadasan a tha nas deuchainneach agus, ann an seagh, “cruthachail” agus rannsachail, i.e., nach eil cho ro-innseach, mar a tha anns na h-eisimpleirean de chuspairean coltach , air an do bhruidhinn sinn an seo.

Gu dearbh, chan eil ann an cruinneachadh dàta ach prìomh eisimpleir - mar as trice is e obair air leth sìmplidh a th’ ann agus gun a bhith toinnte gu teicnigeach, agus gu tric bidh an diabhal anns na mion-fhiosrachadh. Agus is ann dìreach air a’ ghnìomh seo as urrainn dhuinn an raon iomlan de roghainnean a shealltainn airson dè as urrainn a dhol ceàrr agus dè cho fada ‘s as urrainn don obair a thoirt.

Ma bheir thu sùil air feartan na h-obrach às aonais deuchainnean a bharrachd, tha Reddit agus OK a’ coimhead coltach: tha API ann, pasgan python, ach gu dearbh, tha an eadar-dhealachadh mòr. A 'breithneachadh leis na crìochan sin, tha pars Habr a' coimhead nas iom-fhillte na ceart - ach ann an cleachdadh tha e gu math eadar-dhealaichte, agus is e seo dìreach a dh'fhaodar a lorg le bhith a 'dèanamh deuchainnean sìmplidh gus mion-sgrùdadh a dhèanamh air crìochan na duilgheadas.

Anns an eòlas agam, is e an dòigh as èifeachdaiche tuairmse tuairmseach a dhèanamh air an ùine a dh’ fheumas tu airson an sgrùdadh tòiseachaidh fhèin agus a ’chiad dheuchainnean sìmplidh, a’ leughadh na sgrìobhainnean - leigidh iad sin leat tuairmse ceart a thoirt seachad airson an obair gu lèir. A thaobh an dòigh-obrach lùthmhor mòr-chòrdte, bidh mi ag iarraidh ort tiogaid a chruthachadh airson “tuairmse air crìochan gnìomh”, air a’ bhunait as urrainn dhomh measadh a dhèanamh air na ghabhas dèanamh taobh a-staigh an “sprint” agus tuairmse nas mionaidiche a thoirt seachad airson gach fear. tasg.

Mar sin, tha e coltach gur e an argamaid as èifeachdaiche fear a sheallas eòlaiche “neo-theicnigeach” dè an ùine agus na goireasan a bhios ag atharrachadh a rèir crìochan nach deach a mheasadh fhathast.

Dè as urrainn a dhol ceàrr le Saidheans Dàta? Cruinneachadh dàta

Source: www.habr.com

Cuir beachd ann