HTML

Precognox

 precognox-logo-cmyk-620.jpg

A blog készítői a Precognox Kft. keretein belül fejlesztenek intelligens, nyelvészeti alapokra épülő keresési, szövegbányászati, big data és gépi tanulás megoldásokat.

Ha a blogon olvasható tartalmak kapcsán, vagy témáink alapján úgy gondolod megoldhatjuk problémáidat, lépj velünk kapcsolatba a keresovilag@precognox.com címen.

Star Wars text mining

visualizing_star_wars_movie_scripts_precognox.jpgA long time ago, in a galaxy far, far away data analysts were talking about the upcoming new Star Wars movie. One of them has never seen any eposide of the two trilogies before, so they decided to make the movie more accessible to this poor fellow. See more...

Facebook oldaldoboz

Meetup ajánló

Blog figyelése (RSS)

 Add hozzá az RSS olvasódhoz

Ha levélben szeretnél értesülni az új cikkekről:

opendata.hu

opendatahu45.jpg

Az opendata.hu egy ingyenes és nyilvános magyar adatkatalógus. Az oldalt önkéntesek és civil szervezetek hozták létre azzal a céllal, hogy megteremtsék az első magyar nyílt adatokat, adatbázisokat gyűjtő weblapot. Az oldalra szabadon feltölthetőek, rendszerezhetőek szerzői jogvédelem alatt nem álló, nyilvános, illetve közérdekű adatok.

Az opendata.hu oldalt a Magyar OpenData Alapítvány/Egyesület hivatalos megalakulásáig - lelkes önkéntesek segítségével a
K-Monitor Közhasznú Egyesület (K-Monitor) működteti, az üzemeltetést a Precognox végzi.

Főbb témák

adatbányászat (6) adatok (12) adatújságírás (16) adatvizualizáció (17) AI (10) alternatív (6) alternatív keresőfelület (24) beszédtechnológia (13) big data (48) bing (14) CEU (6) clustering (6) conTEXT (8) dashboard (6) data science (8) deep learning (14) egészség (7) egészség kereső (7) előadás (7) emócióelemzés (35) Facebook (9) facebook (8) gépi tanulás (12) Google (23) google (57) gyűlöletbeszéd (7) hackathon (9) hálózatelemzés (14) internetes keresés (26) internet hungary (6) képfeldolgozás (8) képkereső (8) keresés (57) kereséselmélet (7) keresés jövője (55) keresés problémái (38) keresők összehasonlítása (9) keresőoptimalizálás (6) kereső szándéka (11) kereső tanfolyam (9) kereső teszt (15) kognitív nyelvészet (12) konferencia (43) könyvajánló (23) korpusznyelvészet (14) közösségi keresés (8) közösségi média (6) különleges keresők (7) kutatás (6) lda (10) LDA (10) live (13) magyar kereső (9) marketing (8) meetup (40) mesterséges intelligencia (10) metafora (6) mobil (37) mobil keresés (17) Neticle (8) NLP meetup (17) Nuance (9) nyelv (6) nyelvészet (28) nyelvtechnológia (73) open data (11) open knowledge (7) orosz (6) Pennebaker (6) politikai blogok (22) Precognox (44) Precognox Labs (14) Python (13) R (19) spam (6) statisztika (11) számítógépes nyelvészet (8) szemantikus keresés (18) szemantikus kereső (9) szentimentelemzés (34) szövegbányászat (15) társadalomtudomány (7) tartalomelemzés (54) tartalomjegyzék (6) tematikus kereső (19) topik modellek (6) twitter (15) Twitter (18) vertikális kereső (9) vizualizáció (11) yahoo (26) Címkefelhő

A blog tartalmai CC licenc alá tartoznak

Creative Commons License
Kereső Világ by Precognox Kft. is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
Based on a work at http://kereses.blog.hu/.
Permissions beyond the scope of this license may be available at http://precognox.com/.

A Kereső Világ blogon közölt tartalmak a Precognox Kft. tulajdonát képezik. A tartalom újraközléséhez, amennyiben nem kereskedelmi céllal történik, külön engedély nem szükséges, ha linkeled az eredeti tartalmat és feltünteted a tulajdonos nevét is (valahogy így: Ez az írás a Precognox Kft. Kereső Világ blogján jelent meg). Minden más esetben fordulj hozzánk, a zoltan.varju(kukac)precognox.com címre írt levéllel.

Creative Commons License

Nevezd meg! - Ne add el! - Ne változtasd!

 

Funkcionális programozás - divat vagy van benne valami?

2013.11.06. 08:00 Szerző: zoltanvarju Címkék: szoftverfejlesztés nyelvtechnológia big data funkcionális programozás Clojure OCaml Haskell

A programozási nyelvek Turing-ekvivalensek, azaz ami az egyikben megvalósítható, az a másikban is az. Mégis, rengeteg programozási nyelv létezik és híveik gyakran bonyolódnak hitvitákba. Napjainkban egyértelműen reneszánszukat élik a funkcionális nyelvek, különösen a JVM-en futó Scala és Clojure nyer egyre nagyobb teret a nyelvtechnológia és a gépi tanulás területén, a kérdés az miért...

 lambda.jpg

Tényleg jobb az FP?

Az egyik leggyakrabban hangoztatott érv a funkcionális nyelvek mellett az, hogy többmagos, elosztott rendszerekben könnyebb velük boldogulni. Mielőtt azonban valaki a fejlesztőit elzavarja egy tanfolyamra, érdemes elolvasnia Pankratius és tsai  Combining functional and imperative programming for multicore software: An empirical study evaluating Scala and Java című tanulmányát, melyben empirikus módon kimutatják, hogy egy új paradigmában egyenesen romlik a programozók hatékonysága. Persze figyelemre méltó, hogy a munkaigényes feladat esetében minimálisan csökkent az erőráfordítás Scala-t használva. Nem feledkezhetünk meg arról sem, hogy egy évekig objektum-orientált nyelvvel dolgozó embereknek időbe telik megtanulni az új technológiát és csak kb. "egyenrangú" feleket érdemes igazán összehasonlítani.

scala_java.PNG

Ha nem jobb, akkor miért használják?

Az Y Combinator startup akcelerátor és a bayesiánus spamszűrők atyja Paul Graham Beating the Averages című esszéjében amellett érvel, hogy egy funkcionális nyelv (esetében a Lisp) használata amolyan taktikai előnyt jelent elsősorban.  Peter Naur Programming as Theory Building esszéjében amellett érvel, hogy a fejlesztő dolga az, hogy externalizálja, azaz külsővé és megfoghatóvá tegye tudását egy adott problémával kapcsolatban. Úgy tűnik itt kapcsolódhatunk Graham-hez! Ahogy az alábbi három videó szemlélteti, a funkcionális nyelvek általában a kutatás-intenzív területeken kerülnek bevetésre, olyan helyeken, ahol nagyon absztrakt elméleteket kell nagyon gyorsan "kódba önteni".

Kik és hogyan használják az FP nyelveket?

Caml Trading from Yaron Minsky on Vimeo.

A Jane Street algoritmikus kereskedéssel foglalkozó cég, s így hatalmas adatmennyiséget kell valós időben elemeznie rendszereinek. Akinek túl hosszú az előadás (ami tkp. úgy 45 perces csak, a kérdések töltik ki a többi időt), annak nagyon röviden összefoglalva az OCaml-et szoftverfejlesztési megfontolások (kompaktabb kód, nagyobb kifejezőerő stb.) és a statikus típusossággal járó robosztusság miatt választották. 

A Prismatic-et nem kell bemutatni a nyelvtechnológia iránt érdeklődőknek. Érdekes módon a cég Clojure-t használ, de nem a Java interoperabilitás miatt! A cég szinte minden eszközét maga fejlesztette ki (ezek egy részét nyílttá is tette), ami a mai programozási trendek tükrében nagyon meglepő lépés, hiszen miért akarna valaki nulláról indulni, amikor sok nagyon jó minőségű könyvtárat lehet használni. A Prismatic válasza erre annyi, hogy persze sok jó könyvtár van, de egyik sem annyira skálázható és adat-orientált, mint amire egy modern, gépi tanulással és nyelvtechnológiával operáló cégnek szüksége van.

[nyc-haskell] Practical Data Processing With Haskell and Putting Cloud Haskell to Work with Ozgun Ataman and Gershom Bazerman from Richard Minerich on Vimeo.

Köztudott, hogy az ún. MapReduce paradigmát a funkcionális nyelvek ihlették, azonban a Hadoop menthetetlenül a Java környezet szülötte, még akkor is ha ma már gyakorlatilag minden nyelvvel használható. A Haskell közösségen belül a Cloud Haskell egyre nagyobb teret nyer, mint a Hadoop alternatívája, mivel a Scadling-hez és a Cascalog-hoz hasonlóan lehetővé teszi, hogy mintegy a nyelvbe beágyazva egyszerű konstrukcióként használhassunk elosztott rendszereket. Az OCaml ökoszisztémában is megtalálható hasonló elosztott fájlrendszer és MapReduce implementáció, a Plasma Project. A fenti videón bepillantást nyerhetünk abba, miképp használják ki a Haskell előnyeit a Soostone analitikai cégnél, ill. a Cloud Haskell-ről kaphatunk átfogó képet a S&P Capital IQ pénzügyi elemző cég tapasztalatai alapján.

Összegezve

A funkcionális nyelvek használata akkor tűnik jó választásnak, ha kutatás-vezérelt fejlesztést végzünk. Ilyen területen gyakran találkozunk az ún. szoftver-szakadékkal, azaz a kutatásra használt programok és a módszeres ipari fejlesztés során használt metodológiák közötti hatalmas különbségekkel. A funkcionális paradigma előnye éppen az, hogy a hagyományos fejlesztők és a kutatók a segítségével megtalálhatják a közös hangot.

Olvasnivaló

Mitől kutatás-vezérelt valami, hogy kerül a tudományos módszer ide?
Scientific computing vs software engineering
Ellenvetés - avagy a "klasszikus" háttérrel rendelkezők idegenkedése a (kvázi-) funkcionális paradigmától
Proofs are programs - avagy miért a funkcionális nyelvek
Product design, stb.
Hogyan vizsgáljuk meg a helyzetet és készítsünk tervet a jövőre?

A Kereső Világ a Precognox Precognox szakmai blogja A Precognox intelligens, nyelvészeti alapokra építő keresési, szövegbányászati és big data megoldások fejlesztője.

1 komment • Kövess Facebookon • Iratkozz fel értesítőre

A bejegyzés trackback címe:

http://kereses.blog.hu/api/trackback/id/tr875613804

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben.

weasel 2013.11.06. 16:27:57

Széleskörű áttekintés, köszönet érte.