Webbányászat Pythonban

Download Report

Transcript Webbányászat Pythonban

Webbányászat
Pythonban
HOR N YÁ K MI KLÓS
( H O R N YA K . M I K L O S @ G M A I L . C O M )
WE B ME E TUP, P ÉCS
2 0 1 4.04 .04.
Tartalomjegyzék
1.
Bemutatkozás
2.
Kígyó vagy giliszta?
1.
2.
3.
Ismerkedés
Programozási alapok
Csomagoljunk!
1.
4.
Package minden problémára
Szövegbányászat
1.
2.
Az NLTK csomag
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 Software Foundation
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 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 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 é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!