140 likes | 264 Views
Webbányászat Pythonban. Hornyák Miklós ( hornyak.miklos @ gmail.com ) Web Meetup , Pécs 2014.04.04. Tartalomjegyzék. The Zen of Python. Bemutatkozás Kígyó vagy giliszta? Ismerkedés Programozási alapok Csomagoljunk! Package minden problémára Szövegbányászat Az NLTK csomag
E N D
Webbányászat Pythonban Hornyák Miklós (hornyak.miklos@gmail.com) Web Meetup, Pécs 2014.04.04.
Tartalomjegyzék The Zen of Python • Bemutatkozás • Kígyó vagy giliszta? • Ismerkedés • Programozási alapok • Csomagoljunk! • Packageminden problémára • Szövegbányászat • Az NLTK csomag • Nyelvi problémák • Projektek • GUI és WEB fejlesztés • Egyedül nem megy!
Bemutatkozás • Pécsi Tudományegyetem • Közgazdaságtudományi Kar, Gazdaság-módszertani Intézet, Gazdaságinformatika Tanszék • Duomining Kutatócsoport • Adat és szövegbányászat tandeme • Kutatási téma • „Területi versenyképesség vizsgálatának támogatása alternatív eszközökkel” • Strukturált és strukturálatlan adatok használata • Területegységek reprezentációja • „Socialsensors” és bioinformatikai analógia
Python alapok • 1989 óta fejlesztik - közösség! - Guido van Rossum • Opensource, portábilis, ingyenes ám korlátozás nélküli használható • Magasszintű, jól olvasható szintaktikájú SCRIPT nyelv (pl. Ruby, PHP, Perl, Javascript, UX shellek) • Moduláris és objektumorientált programozást is támogatja • Dinamikus- interpreterkifejezéseket és karakterláncokat is kiértékel • Ortogonális - kevés fogalommal nagyszámú konstrukció alkotható • Reflektív - metaprogramozás támogatása: a végrehajtás során képes objektumot módosítani • Introspektív - sok Python fejlesztőeszköz Pythonban íródott
Python alapok Python Software Foundation • Implementációk: • Interpretált - lefordított utasításokat virtuális gép hajtja végre • Bytekódgenerálás – Jython, IronPython • Verziók - folyamatos fejlődés • 2.7.6 - sok module • 3.4.0 – unicode, Qt • Használat • Interaktív mód Python parancsor - python.exe • Grafikus IDE – pl. Eclipse • Tudományos közösség kedvelt eszköze • Disztribúciók – python(x,y), SciPy, Anaconda, winpython
Python programozás Python zsebkönyv, Kiskapu 2008 "Egy Python program sorait bal szélre igazítani olyan, mint egy szépirodalmi műből kiszedni az írásjeleket és a szóközöket.„ komment • Fejlett adattípusok használatát támogtaja: listák, szótárak • Tömör kb. harmada a Java kódnak • Erőforráskezelésautomatikus (memória, fájlok) – „garbagecollector” • Mutatók nincsenek, de multi-thread lehet. • Objektumorientált - többszörös öröklést is támogatja • Modern kivételkezelés, dinamikus típusadás – i = 1, i = „1” • Casesensitive – Józsi, józsi
Python és a csomagok • Telepítés – pythonsetup.py / pip • import csomag • Rengeteg Python package -> module • Cryptography • Databases, XML • GUI • GIS • Image Manipulation,PDFMiner • Mac, Windows • Web • NumPy, Matplotlib, Sympy, pandas
Python és IDE • Eclipse(www.eclipse.org) • Javaban írt IDE • Plug-inek számos feladathoz • Több platformra • PyDev (pydev.org) • Python IDE az Eclipsehez • Typehinting • Debugger, stb.
Python és a szövegbányászat • Szövegbányászat • Strukturálatlan adatok – pl. e-mail, dokumentumok, weblapok elektronikus adatok • Kb. 85%-a strukturálatlan adat • Elemzés, feldolgozás, információkinyerés - rejtett • NLTK – NaturalLanguageToolkit • Tokenizálás • Stopszavazás • Szótövezés • Part of Speech (POS) – nyelvtani elemzés • Named-entityRecognition (NER) – névelem azonosítás • Nyelvi problémák • HunSpell • Szótövezés
Python projektben • FOI projekt • FutureOrientation Index területegységekre • GoogleTrends keresések alapján • Térképi ábrázolás • HírIndex projekt • Területegységek média reprezentációja • Osztályozás – pozitív/negatív hír • Térképi ábrázolás • SEARCH projekt • Európai Unió policy notes dokumentumok elemzése • Adatvizualizáció
Python és a GUI fejlesztés • wxPython • wxPythonegy GUI toolkit Pythonhoz • Opensource • Cross-platform • Unix, Macintosh OS X, MS Windows • Boa Constructor • Python IDE és wxPython GUI builder • Opensource • Cross-platform • Unix, Macintosh OS X, MS Windows • Pythonban készült
Python és a webfejlesztés • CGI • Library: cgi, cgibt • Spagetti kód – Mako, Genshi, Jinjatemplatek • fromstring import Templatetemplate= Template("<html><body><h1>Hello ${name}!</h1></body></html>")print template.substitute(dict(name=‚Web Meetup'))<html><body><h1>Hello Web Meetup</h1></body></html> • MySQL, SQLite, PostgreSQL és ObjectRelationalMapping (ORM) • SQLAlchemy • Frameworkök • Django • Zope
Python és a barátai • R (http://www.r-project.org/) • Statisztikai számítási feladatok elvégzésre • Az eredmények ábrázolására • Programozás nyelv és környezet (R Studio) • GNU project • Cross platform • RapidMiner • Lásd Kovács Balázs előadása – modellalkotás és próba • Graphviz (http://www.graphviz.org/) • Vizualizációs eszközök – dot, neato, fdp, sfdp, twopi, circo • Opensource
Python és webbányászat Köszönöm a figyelmet!