webbányászat pythonban
DESCRIPTION
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 - PowerPoint PPT PresentationTRANSCRIPT
Webbányászat PythonbanHORNYÁK MIKLÓS (HORNYAK .M IKLOS@GMAI L .COM)
WEB MEETUP, PÉCS
2014.04.04.
Tartalomjegyzék1. Bemutatkozás
2. Kígyó vagy giliszta?1. Ismerkedés2. Programozási alapok
3. Csomagoljunk!1. Package minden problémára
4. Szövegbányászat1. Az NLTK csomag2. Nyelvi problémák
5. Projektek
6. GUI és WEB fejlesztés
7. Egyedül nem megy!
The Zen of Python
Bemutatkozás Pécsi Tudományegyetem
◦ Közgazdaságtudományi Kar, Gazdaság-módszertani Intézet, Gazdaságinformatika Tanszék
Duo mining 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◦ „Social sensors” é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 - interpreter kifejezé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 Implementációk:
◦ Interpretált - lefordított utasításokat virtuális gép hajtja végre◦ Bytekód generá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 Software Foundation
Python programozás 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és automatikus (memória, fájlok) – „garbage collector”
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”
Case sensitive – Józsi, józsi
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
Python és a csomagok Telepítés – python setup.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◦ Type hinting◦ 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 – Natural Language Toolkit◦ Tokenizálás◦ Stopszavazás◦ Szótövezés◦ Part of Speech (POS) – nyelvtani elemzés ◦ Named-entity Recognition (NER) – névelem azonosítás
Nyelvi problémák◦ HunSpell◦ Szótövezés
Python projektben FOI projekt
◦ Future Orientation Index területegységekre◦ Google Trends 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
◦ wxPython egy 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, Jinja templatek◦ from string import Template
template = 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 Object Relational Mapping (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!