Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí
Inseoidh mé duit ó thaithí phearsanta cad a bhí úsáideach cén áit agus cén uair. Is forbhreathnú agus tráchtas é, ionas go mbeidh sé soiléir cad é agus cén áit ar féidir leat tuilleadh tochailte a dhéanamh - ach anseo tá taithí phearsanta suibiachtúil amháin agam, b'fhéidir go bhfuil gach rud go hiomlán difriúil duit.

Cén fáth a bhfuil sé tábhachtach eolas a bheith agat ar theangacha fiosrúcháin agus a bheith in ann úsáid a bhaint astu? Ag a croí, tá roinnt céimeanna tábhachtacha oibre ag Eolaíocht Sonraí, agus is é an chéad chéim agus an ceann is tábhachtaí (gan é, is cinnte nach n-oibreoidh aon rud!) ná sonraí a fháil nó a bhaint amach. Go minic, bíonn na sonraí ina suí áit éigin i bhfoirm éigin agus ní mór iad a “aisghabháil” as sin. 

Ligeann teangacha ceistiúcháin duit na fíor-shonraí seo a bhaint as! Agus inniu inseoidh mé duit faoi na teangacha ceisteacha sin a bhí úsáideach domsa agus inseoidh mé duit agus taispeánfaidh mé duit cén áit agus conas go díreach - cén fáth a bhfuil gá le staidéar a dhéanamh air.

Beidh trí phríomhbhloc de chineálacha ceisteanna sonraí ann, a phléfaimid san Airteagal seo:

  • Is iad teangacha fiosrúcháin “caighdeánacha” an rud a thuigtear go coitianta nuair a bhíonn teanga cheistiúcháin á labhairt, mar shampla ailgéabar coibhneasta nó SQL.
  • Teangacha ceisteanna scriptithe: mar shampla, pandas rudaí Python, numpy nó shell scripting.
  • Teangacha ceist le haghaidh graif eolais agus bunachair shonraí graf.

Níl i ngach rud atá scríofa anseo ach eispéireas pearsanta, rud a bhí úsáideach, le cur síos ar chásanna agus “cén fáth a raibh gá leis” - is féidir le gach duine triail a bhaint as conas is féidir le cásanna comhchosúla teacht ort agus iarracht a dhéanamh ullmhú dóibh roimh ré trí na teangacha seo a thuiscint . ​sula mbeidh ort iarratas a dhéanamh (go práinneach) ar thionscadal nó fiú dul chuig tionscadal ina bhfuil gá leo.

Teangacha ceiste "caighdeánacha".

Tá teangacha caighdeánacha fiosrúcháin go beacht sa chiall a smaoinímid orthu de ghnáth agus muid ag caint ar cheisteanna.

Ailgéabar coibhneasta

Cén fáth a bhfuil gá le hailgéabar coibhneasta inniu? Chun tuiscint mhaith a bheith agat ar an bhfáth a bhfuil teangacha fiosrúcháin struchtúrtha ar bhealach áirithe agus iad a úsáid go comhfhiosach, ní mór duit tuiscint a fháil ar an gcroí is bun leo.

Cad is ailgéabar coibhneasta ann?

Is é seo a leanas an sainmhíniú foirmiúil: is córas dúnta oibríochta ar chaidreamh i múnla sonraí coibhneasta é an ailgéabar coibhneasta. Chun é a chur beagán níos daonna, is córas oibríochtaí é seo ar tháblaí ionas gur tábla é an toradh i gcónaí.

Féach ar gach oibríocht choibhneasta i seo alt ó Habr - anseo déanaimid cur síos ar an bhfáth ar gá duit fios a bheith agat agus cén áit a bhfuil sé áisiúil.

Cén fáth?

Is minic go dtugtar tuiscint níos doimhne ar cad a oibríonn i dteangacha fiosrúcháin nuair a thosaíonn tú a thuiscint cad atá i gceist le teangacha fiosrúcháin agus cad iad na hoibríochtaí atá taobh thiar de nathanna cainte i dteangacha fiosrúcháin ar leith.

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí
Tógtha ó seo ailt. Sampla d'oibríocht: ceangail, a nascann táblaí.

Ábhair le haghaidh staidéir:

Cúrsa tosaigh maith ó Stanford. Go ginearálta, tá go leor ábhar ar ailgéabar agus teoiric choibhneasta - Coursera, Udacity. Tá méid ollmhór ábhar ar líne freisin, an mhaith san áireamh cúrsaí acadúla. Mo chomhairle phearsanta: ní mór duit ailgéabar coibhneasta a thuiscint go han-mhaith - is é seo bunús na mbonn.

SQL

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí
Tógtha ó seo earraí.

Is éard atá i SQL go bunúsach ná cur i bhfeidhm an ailgéabar choibhneasta - le caveat tábhachtach, tá SQL dearbhaitheach! Is é sin, agus ceist á scríobh agat i dteanga an ailgéabar choibhneasta, deir tú conas ríomh a dhéanamh - ach le SQL, sonraíonn tú cad ba mhaith leat a bhaint as, agus ansin gineann an DBMS slonn (éifeachtach) cheana féin i dteanga an ailgéabar choibhneasta ( is eol dúinne a gcomhionannas Teoirim Codd).

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí
Tógtha ó seo earraí.

Cén fáth?

DBMSanna Coibhneasta: Tá Oracle, Postgres, SQL Server, srl fós beagnach i ngach áit agus tá seans an-ard ann go mbeidh ort idirghníomhú leo, rud a chiallaíonn go mbeidh ort SQL a léamh (rud is dócha) nó é a scríobh ( ní dócha ach an oiread).

Cad atá le léamh agus staidéar a dhéanamh air

De réir na nasc céanna thuas (faoin ailgéabar coibhneasta), tá méid dochreidte ábhar ann, mar shampla, seo.

Dála an scéil, cad é NoSQL?

“Is fiú a aibhsiú arís go bhfuil bunús spontáineach leis an téarma “NoSQL” agus nach bhfuil aon sainmhíniú nó institiúid eolaíoch a nglactar leis go ginearálta taobh thiar de.” Comhfhreagrach airteagal ar Habr.

Go deimhin, thuig daoine nach bhfuil samhail choibhneasta iomlán ag teastáil chun go leor fadhbanna a réiteach, go háirithe dóibh siúd a bhfuil, mar shampla, feidhmíocht ríthábhachtach agus go bhfuil ceisteanna simplí áirithe le comhiomlánú chun tosaigh - áit a bhfuil sé ríthábhachtach méadracht a ríomh go tapa agus iad a scríobh chuig an bunachar sonraí, agus tá an chuid is mó gnéithe coibhneasta iompaithe amach a bheith ní hamháin gan ghá, ach freisin díobhálach - cén fáth a normalú rud éigin má beidh sé spoil an rud is tábhachtaí dúinn (do roinnt tasc ar leith) - táirgiúlacht?

Chomh maith leis sin, is minic a bhíonn gá le scéimrí solúbtha in ionad scéimrí seasta matamaitice an tsamhail chaidrimh chlasaicigh - agus simplíonn sé seo go mór forbairt feidhmchlár nuair a bhíonn sé ríthábhachtach an córas a imscaradh agus tosú ag obair go tapa, na torthaí a phróiseáil - nó an scéimre agus na cineálacha sonraí stóráilte. nach bhfuil chomh tábhachtach.

Mar shampla, táimid ag cruthú córas saineolach agus ba mhaith linn faisnéis a stóráil ar fhearann ​​​​ar leith mar aon le roinnt faisnéise meta - b'fhéidir nach bhfuil na réimsí go léir ar eolas againn agus go simplí stóráilimid JSON do gach taifead - tugann sé seo timpeallacht an-solúbtha dúinn chun na sonraí a leathnú múnla agus atriallta go tapa - mar sin sa chás seo, beidh NoSQL fiú níos fearr agus níos inléite. Sampla iontráil (ó cheann de mo thionscadail ina raibh NoSQL ceart nuair a bhí sé ag teastáil).

{"en_wikipedia_url":"https://en.wikipedia.org/wiki/Johnny_Cash",
"ru_wikipedia_url":"https://ru.wikipedia.org/wiki/?curid=301643",
"ru_wiki_pagecount":149616,
"entity":[42775,"Джонни Кэш","ru"],
"en_wiki_pagecount":2338861}

Leigh Nios mo anseo faoi ​​NoSQL.

Cad atá le staidéar a dhéanamh?

Anseo, in áit, ní mór duit ach do thasc a anailísiú go críochnúil, cad iad na hairíonna atá aige agus cad iad na córais NoSQL atá ar fáil a d'oirfeadh an cur síos seo - agus ansin tosú ag déanamh staidéir ar an gcóras seo.

Teangacha Iarratas Scriptithe

Ar dtús, is cosúil, cad atá le baint ag Python leis go ginearálta - is teanga ríomhchlárúcháin í, agus ní fiosrúcháin ar chor ar bith.

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí

  • Is scian Eolaíochta Sonraí é Pandas ó Arm na hEilvéise; tarlaíonn méid ollmhór claochlaithe sonraí, comhiomlánú, etc. ann.
  • Numpy - ríomhaireachtaí veicteoireach, maitrísí agus ailgéabar líneach ann.
  • Scipy - tá go leor matamaitice sa phacáiste seo, go háirithe stats.
  • Saotharlann Jupyter - luíonn go leor anailíse sonraí taiscéalaíoch go maith le ríomhairí glúine - úsáideach go mbeadh a fhios agat.
  • Iarratais - ag obair leis an líonra.
  • Tá an-tóir ar Pyspark i measc innealtóirí sonraí, is dóichí go mbeidh ort idirghníomhú leis seo nó Spark, go simplí mar gheall ar a n-tóir.
  • * Seiléiniam - an-úsáideach chun sonraí a bhailiú ó láithreáin agus acmhainní, uaireanta níl aon bhealach eile chun na sonraí a fháil.

Mo phríomhchomhairle: foghlaim Python!

Pandas

Glacaimis an cód seo a leanas mar shampla:

import pandas as pd
df = pd.read_csv(“data/dataset.csv”)
# Calculate and rename aggregations
all_together = (df[df[‘trip_type’] == “return”]
    .groupby(['start_station_name','end_station_name'])
                  	    .agg({'trip_duration_seconds': [np.size, np.mean, np.min, np.max]})
                           .rename(columns={'size': 'num_trips', 
           'mean': 'avg_duration_seconds',    
           'amin': min_duration_seconds', 
           ‘amax': 'max_duration_seconds'}))

Go bunúsach, feicimid go n-oireann an cód isteach sa phatrún clasaiceach SQL.

SELECT start_station_name, end_station_name, count(trip_duration_seconds) as size, …..
FROM dataset
WHERE trip_type = ‘return’
GROUPBY start_station_name, end_station_name

Ach is é an chuid thábhachtach ná go bhfuil an cód seo mar chuid den script agus den phíblíne; go deimhin, táimid ag neadú fiosruithe i bpíblíne Python. Sa chás seo, tagann teanga na gceisteanna chugainn ó leabharlanna mar Pandas nó pySpark.

Go ginearálta, i pySpark feicimid a mhacasamhail de chlaochlú sonraí trí theanga fiosrúcháin i spiorad:

df.filter(df.trip_type = “return”)
  .groupby(“day”)
  .agg({duration: 'mean'})
  .sort()

Cén áit agus cad atá le léamh

Ar Python féin i gcoitinne Níl aon fhadhb teacht ar ábhair le staidéar a dhéanamh orthu. Tá líon mór ranganna teagaisc ar líne pandas, pySpark agus cúrsaí ar Spark (agus leis féin freisin DS). Ar an iomlán, tá an t-ábhar anseo iontach le haghaidh googling, agus dá mba rud é go raibh orm pacáiste amháin a phiocadh chun díriú air, bheadh ​​​​sé pandas, ar ndóigh. Maidir leis an meascán d'ábhair DS+Python freisin go mór.

Shell mar theanga cheistiúcháin

Is éard atá i roinnt tionscadal próiseála agus anailíse sonraí ar oibrigh mé leo, i ndáiríre, scripteanna sliogán a ghlaonn cód i Python, Java, agus na horduithe blaosc iad féin. Mar sin, go ginearálta, is féidir leat píblínte i bash/zsh/etc a mheas mar chineál éigin d’fhiosrúchán ardleibhéil (is féidir leat, ar ndóigh, lúba stuif a dhéanamh ann, ach níl sé seo tipiciúil do chód DS i dteangacha sliogáin), a ligean ar a thabhairt sampla simplí - b'éigean dom mapáil QID a dhéanamh ar wikidata agus naisc iomlána chuig na vicí Rúisise agus Béarla, chuige seo scríobh mé iarratas simplí ó na horduithe sa bash agus don aschur scríobh mé script shimplí i Python, rud a rinne mé chur le chéile mar seo:

pv “data/latest-all.json.gz” | 
unpigz -c  | 
jq --stream $JQ_QUERY | 
python3 scripts/post_process.py "output.csv"

i gcás

JQ_QUERY = 'select((.[0][1] == "sitelinks" and (.[0][2]=="enwiki" or .[0][2] =="ruwiki") and .[0][3] =="title") or .[0][1] == "id")' 

Ba é seo, i ndáiríre, an phíblíne iomlán a chruthaigh an léarscáiliú riachtanach; mar a fheicimid, d'oibrigh gach rud i mód sruth:

  • cosán comhaid pv - tugann sé barra dul chun cinn bunaithe ar mhéid comhaid agus cuireann sé a bhfuil ann ar aghaidh
  • léigh unpigz -c cuid den chartlann agus thug sé do jq
  • jq leis an eochair - thug sruth an toradh láithreach agus chuir sé ar aghaidh chuig an iarphróiseálaí é (mar a bhí leis an gcéad sampla) i Python
  • go hinmheánach, ba mheaisín stáit shimplí é an t-iarphróiseálaí a fhormáid an t-aschur 

San iomlán, píblíne casta ag obair i mód sreabhadh ar shonraí móra (0.5TB), gan acmhainní suntasacha agus déanta as píblíne simplí agus cúpla uirlisí.

Leid thábhachtach eile: a bheith in ann oibriú go maith agus go héifeachtach sa teirminéal agus bash/zsh/etc a scríobh.

Cá mbeidh sé úsáideach? Sea, beagnach i ngach áit - arís, tá a lán ábhar chun staidéar a dhéanamh ar an Idirlíon. Go háirithe, anseo seo mo alt roimhe seo.

R scriptithe

Arís, b'fhéidir go ngéillfeadh an léitheoir - bhuel, is teanga ríomhchlárúcháin iomlán í seo! Agus ar ndóigh, beidh sé ceart. Mar sin féin, is gnách liom teacht ar R i gcomhthéacs mar sin go raibh sé, i ndáiríre, an-chosúil le teanga cheistiúcháin.

Is timpeallacht agus teanga ríomhaireachta staitistiúil é R don ríomhaireacht statach agus don léirshamhlú (de réir seo).

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí
tógtha dá bhrí sin. Dála an scéil, molaim é, ábhar maith.

Cén fáth a gcaithfidh eolaí sonraí a bheith eolach ar R? Ar a laghad, toisc go bhfuil sraith ollmhór de dhaoine neamh-TF ann a dhéanann anailís ar shonraí in R. Tháinig mé trasna air sna háiteanna seo a leanas:

  • Earnáil chógaisíochta.
  • bitheolaithe.
  • Earnáil airgeadais.
  • Daoine a bhfuil oideachas matamaitice amháin acu a dhéileálann le staitisticí.
  • Samhlacha staitistiúla speisialaithe agus múnlaí meaisínfhoghlama (nach féidir a fháil go minic ach i leagan an údair mar phacáiste R).

Cén fáth gur teanga cheistiúcháin í i ndáiríre? San fhoirm ina bhfaightear go minic é, is iarratas é i ndáiríre chun samhail a chruthú, lena n-áirítear sonraí a léamh agus paraiméadair cheist (múnla) a shocrú, chomh maith le sonraí a shamhlú i bpacáistí mar ggplot2 - is foirm é seo freisin chun ceisteanna a scríobh. .

Ceisteanna samplacha le haghaidh léirshamhlú

ggplot(data = beav, 
       aes(x = id, y = temp, 
           group = activ, color = activ)) +
  geom_line() + 
  geom_point() +
  scale_color_manual(values = c("red", "blue"))

Go ginearálta, aistríodh go leor smaointe ó R isteach i bpacáistí python cosúil le pandas, numpy nó scipy, cosúil le dataframes agus veicteoiriú sonraí - mar sin go ginearálta beidh a lán rudaí in R cosúil go bhfuil tú eolach agus áisiúil duit.

Tá go leor foinsí le staidéar a dhéanamh orthu, mar shampla, seo.

Grafaicí eolais

Anseo tá taithí beagán neamhghnách agam, mar is minic a bhíonn orm oibriú le graif eolais agus ceisteanna a chur ar theangacha le haghaidh graif. Mar sin, déanaimis dul thar na bunghnéithe go hachomair, toisc go bhfuil an chuid seo beagán níos coimhthíocha.

I mbunachair shonraí chlasaiceacha choibhneasta tá scéimre seasta againn, ach anseo tá an scéimre solúbtha, is “colún” agus fiú níos mó fós é gach tuar.

Samhlaigh go raibh tú ag samhaltú duine agus gur theastaigh uait cur síos a dhéanamh ar phríomhrudaí, mar shampla, déanaimis duine ar leith, Douglas Adams, a ghlacadh agus an cur síos seo a úsáid mar bhunús leis.

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí
www.wikidata.org/wiki/Q42

Dá mbainfí úsáid as bunachar sonraí coibhneasta, bheadh ​​orainn tábla nó táblaí ollmhóra a chruthú le líon mór colúin, agus bheadh ​​an chuid is mó díobh NULLComment nó líonta le luach Bréagach réamhshocraithe, mar shampla, ní dócha go bhfuil go leor againn iontráil i leabharlann náisiúnta na Cóiré - ar ndóigh, d'fhéadfaimis iad a chur i dtáblaí ar leith, ach ar deireadh thiar ba iarracht é seo chun ciorcad solúbtha loighciúil a shamhaltú le réamhaithrisí ag baint úsáide as ceann coibhneasta seasta.

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí
Mar sin, samhlaigh go bhfuil na sonraí go léir stóráilte mar ghraf nó mar abairtí dénártha agus aonarach boolean.

Cá háit ar féidir leat teacht ar seo fiú? Gcéad dul síos, ag obair le sonraí wiki, agus le haon bhunachair shonraí ghraif nó sonraí nasctha.

Seo a leanas na príomhtheangacha fiosrúcháin a d’úsáid mé agus a d’oibrigh mé leo.

SPARQL

Wiki:
SPARQL (acrainm athfhillteach ó Béarla Prótacal SPARQL agus Teanga Iarratas RDF) - teanga cheist sonraí, arna ionadú ag an múnla RDFAgus prótacal na hiarrataí sin a tharchur agus freagra a thabhairt orthu. Is moladh é SPARQL Cuibhreannas W3C agus ceann de na teicneolaíochtaí gréasáin shéimeantach.

Ach i ndáiríre is teanga fiosrúcháin í le haghaidh tuar loighciúil aonarach agus dénártha. Níl tú ach ag sonrú go coinníollach cad atá socraithe i slonn Boole agus cad nach bhfuil (an-simplithe).

Is bonn triarach é bonn an RDF (Creat Cur Síos Acmhainne), ar a ndéantar fiosruithe SPARQL object, predicate, subject - agus roghnaíonn an cheist na triples riachtanacha de réir na srianta sonraithe i spiorad: faigh X mar go bhfuil p_55(X, q_33) fíor - áit, ar ndóigh, is gaol de shaghas éigin é p_55 le ID 55, agus is é q_33 réad le ID 33 (anseo agus an scéal iomlán, arís eile ag fágáil gach cineál sonraí ar lár).

Sampla de chur i láthair sonraí:

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí
Pictiúir agus sampla le tíortha anseo dá bhrí sin.

Sampla de Cheist Bhunúsach

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí

Déanta na fírinne, ba mhaith linn luach na hathróige ?tíre a fháil ar nós an tuar
ball_de, is fíor gurb é ball_de(?country,q458) agus q458 ID an Aontais Eorpaigh.

Sampla d’fhiosrúchán fíor SPARQL taobh istigh den inneall python:

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí

Go hiondúil, b’éigean dom SPARQL a léamh seachas é a scríobh – sa chás sin, is dócha gur scil úsáideach a bheadh ​​ann an teanga a thuiscint ag an mbunleibhéal ar a laghad chun tuiscint a fháil go beacht ar conas a dhéantar sonraí a aisghabháil. 

Tá go leor ábhar le staidéar ar líne: mar shampla, anseo seo и seo. De ghnáth déanaim google dearaí agus samplaí sonracha agus is leor sin faoi láthair.

Teangacha ceist loighciúil

Is féidir leat níos mó a léamh ar an ábhar i mo alt anseo. Agus anseo, ní dhéanfaimid ach scrúdú gairid ar cén fáth a bhfuil teangacha loighciúla oiriúnach go maith chun fiosrúcháin a scríobh. Go bunúsach, níl in RDF ach sraith ráiteas loighciúil den fhoirm p(X) agus h(X,Y), agus tá an fhoirm seo a leanas ag fiosrúchán loighciúil:

output(X) :- country(X), member_of(X,“EU”).

Anseo táimid ag caint faoi aschur tuartha nua a chruthú/1 (/ ciallaíonn 1 aonarach), ar choinníoll go bhfuil sé fíor i gcás X gur tír (X) - i.e., is tír í X agus freisin ball_de(X,"AE ").

Is é sin, sa chás seo, cuirtear na sonraí agus na rialacha i láthair ar an mbealach céanna, rud a ligeann dúinn fadhbanna a shamhaltú go han-éasca agus go maith.

Cár bhuail tú sa tionscal?: tionscadal mór ar fad le cuideachta a scríobhann fiosruithe i dteanga den sórt sin, chomh maith leis an tionscadal reatha i gcroílár an chórais - is cosúil gur rud sách coimhthíocha é seo, ach uaireanta tarlaíonn sé.

Sampla de bhlúire cód i dteanga loighciúil ag próiseáil wikidata:

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí

Ábhair: Tabharfaidh mé anseo cúpla nasc chuig an teanga ríomhchlárúcháin loighciúil nua-aimseartha Freagraí Clárú Set - molaim staidéar a dhéanamh air:

Nótaí Eolaí Sonraí: Athbhreithniú Pearsantaithe ar Theangacha Iarratas Sonraí

Foinse: will.com

Add a comment