Python og NLTK i INF2820, V2017 Bakgrunnskunnskaper fra INF1820 INF2820 bygger p? en del av INF1820 - Introduksjon til spr?k- og kommunikasjonsteknologi. Vi vil bl.a. bruke noen av de samme redskapene i de to emnene: NLTK og Python. Studenter som ikke er kjent med disse redskapene, b?r sette seg inn i dem s? raskt som mulig. Siden http://www.uio.no/studier/emner/matnat/ifi/INF1820/v16/pensumliste/index.html viser hvilke deler av NLTK som var pensum i INF1820 i fjor. Du finner ogs? flere detaljer om hva som ble dekket i INF1820 p? http://www.uio.no/studier/emner/matnat/ifi/INF1820/v16/timeplan/index.html under Gruppeundervisning. Vi vil bygge p? deler av kapittel 1 og 2 i NLTK-boka (men ikke kap. 5). Du anbefales ? arbeide deg gjennom f?lgende ? Kapittel 1 fra NLTK-boka, s?rlig seksjon 1.2 og 1.4. ? Gj?re oppgavene fra seksjon 1.8: 1, 2, 3, 8, 9, 10, 13, 16 ? Seksjon 2.3 N?r du arbeider med NLTK b?r du sitte ved skjermen med et Python-vindu og selv utf?re det som st?r. Det er det du l?rer av. Du vil ogs? tjene p? ? arbeide mer med programmering i Python, seksjonene 4.1-4.4 I NLTK-boka. P? siden med INF1820-pensum finner du ogs? peker til mere stoff om Python, ? How to think like a computer scientist: Learning with Python (anbefalt) ? The official Python documentation Valg av Python-oppsett Python 2.x vs python 3.x. Python finnes i to varianter python 2.x og python 3.x. De er ikke helt kompatible, dvs ikke all kode fra python 2.x vil kj?re i python 3.x. Derfor er det en del som holder fast ved python 2.7 (siste versjon av 2.x). Vi vil bruke python 3.x i INF2820 dette semesteret. Det gj?r vi fordi INF1001 bruker python 3.x, og fordi NLTKs siste versjon er lagt til rette for python 3.x. Siste versjon av NLTK virker ogs? med python 2.x, men dokumentasjonen er utformet for python 3.x. P? IFIs linux-maskiner vil kommandoen python gi deg python 2.7, mens kommandoen python3 gir deg python 3. NLTK IFIs python3 er satt opp med NLTK, slik at kommandoen import NLTK skal virke. N?r du arbeider p? IFIs Linux-maskiner trenger du ikke laste ned NLTK-dataene til ditt eget omr?de. Dataene ligger p? /projects/nlp/nltk_data. Hvis du legger f?lgende linje til .bashrc-filen din og s? logger ut og logger p? igjen, vil du ha permanent tilgang. export NLTK_DATA=/projects/nlp/nltk_data Python/Ipython/Idle N?r du sitter p? en av IFIs Linux-maskiner kan du gi kommandoen python3. Du kommer da rett inn i et Python-shell hvor du kan arbeide interaktivt. Python er forskjellig fra Java. I Java skriver vi et program, deretter kompilerer vi det, og s? kan vi kj?re det. Python kompilerer ikke programmene, men interpreterer dem og legger opp til interaktivt arbeid i utviklingsfasen. Det gj?r ogs? NLTK(-dokumentasjonen), og vi vil bruke denne arbeidsformen i INF2820. Alternativt til kommandoen python kan du gi en av kommandoene idle eller ipython. Disse gir deg ogs? et Python-shell, men de gir ogs? en del tilleggsfunksjonalitet som automatisk indentering (der du trenger 4 blanke), og de kan fullf?re kommandonavn for deg n?r du har skrevet f?rste delen. Denne funksjonen er uvurderlig n?r vi skal arbeide med NLTK. Forel?pig f?rer disse til python 2 p? IFIs maskiner, men vi arbeider med ? f? enkelt oppsett for ? bruke dem med python 3. Python p? hjemmemaskin For python p? egen maskin er det en del anbefalinger p? http://www.uio.no/studier/emner/matnat/ifi/INF1100/h16/ressurser/installering.html Men merk at de bruker python 2.7, s? du m? gj?re tilpasninger. Vi er ogs? interessert i andre pakker enn dem, f?rst og fremst NLTK. For et system som gj?r det lett ? installere nye pakker, anbefales Anaconda. 1