/vaalikone-text-mining

Ylen vaalikoneen avoimien kysymysten analysointia

MIT LicenseMIT

vaalikone-text-mining

Tästä Github-repositorysta löytyy Jupyter notebook jossa tutkitaan Ylen vaalikoneen avoimien kysymysten vastauksia ja tehdään tilastollista analyysiä sen pohjalta. Samalla tarkoituksena on kokeilla Pythonin text mining-ominaisuuksia suomen kielen analysoinnissa. Lisäksi päästään kokeilemaan Githubin uutta Jupyter-notebook-renderingiä. Notebookia pääsee tarkastelemaan suoraan Githubista käsin.

Data

Analyysin lähdedatana käytetään Ylen avoimeksi tekemää Vaalikone-dataa. Tästä datasta olen käyttänyt versiota joka löytyy avoindata.fi-sivuilta.

Avoindata.fi:n hostaamaan aineistoon on eksynyt yksi enkoodausvirhe joka pitää korjata käsin jotta .csv-tiedoston pystyy onnistuneesti lukemaan utf-8-enkoodauksella. SDP:n Raimo Piiraisen vastauksesta (vastausid 4798, rivi 1358) pitää poistaa merkki 伋 joka löytyy aika loppupuolelta Piiraisen vastauksia (tekstinpätkän vaan ilmastonmuutoksen hyväksi on työskenneltävä pitkällä aikavälillä jälkeen ja ennen pätkää Nykyisille periaateluvan saanneille ydinvoimaloille). Kun tämä virhe on korjattu, sijoita .csv-tiedosto nimellä vaalikone_data_fix.csv data-kansioon.

Kirjastot ja muut vaatimukset

Notebookissa kutsutaan R:n ggplot2-kirjastoa ipythonista käsin joten R:n ja ggplot2-kirjaston pitää olla asennettuna.

Notebookissa käytetään muutamia kirjastoa jotka eivät kuulu Pythonin standardikirjastoihin: pandas, scikit-learn, numpy, langdetect, nltk, seaborn, matplotlib ja rpy2. Lisäksi Jupyter-notebookin ajamiseen tarvitaan ipython-kirjasto. Ehkä helpoin tapa asentaa tarvittavat python-kirjastot on Anaconda-distron kautta. Tuo distro sisältää itsessään jo pandas-, scikit-learn-, numpy-, nltk-, matplotlib- ja ipython-kirjastot. Kirjastot langdetect ja seaborn voi asentaa komennoilla pip install langdetect ja pip install seaborn. Linuxilla myös rpy2-kirjaston voi asentaa helposti komennolla pip install rpy2. Windowsilla rpy2-kirjaston asentaminen on jokseenkin hankalaa. Vinkkejä tuohon löytää mm. täältä, täältä ja täältä.

Kun kaikki kirjastot on asennettu, pitää vielä ladata nltk:ssa suomen ja ruotsin kielen "stopwords"-listat. Nämä voi esimerkiksi ladata ajamalla python-interpreterissä nltk.download()-komento ja sitten valitsemalla all corpora nltk:n lataus-GUIssa.