Python og NLTK i INF2820, V2018 Bakgrunnskunnskaper fra INF1820/IN1140 INF2820 bygger p? en del av INF1820 - Introduksjon til spr?k- og kommunikasjonsteknologi/ IN1140 Introduksjon til spr?kteknologi. 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. Vi regner ogs? med at de fleste studentene er kjent med Python fra begynnerkurset i programmering INF1001 (2016), IN1000 (2017). Du finner detaljer om hva som ble dekket i INF1820 p? http://www.uio.no/studier/emner/matnat/ifi/INF1820/v17/timeplan/index.html under Gruppeundervisning. Vi vil bygge p? deler av kapittel 1, 2 og 3 i NLTK-boka. Dersom du ikke har tatt INF1820/IN1140 eller trenger en oppfriskning, anbefales du ? arbeide deg gjennom f?lgende ? Start med seksjon 1 Computing with language and Section 2 A closer look at Python fra http://www.nltk.org/book/ch01.html. ? Gj?r deretter oppgavene 1, 3, 8, 16, 19 fra seksjon 8 i samme kapittel. ? Se p? resten av kapittel 1, s?rlig seksjon 4, og p? seksjon 3 i kapittel 2. ? Arbeid deg gjennom kapittel 3, seksjon 2 Strings ? Gj?r oppgave: 9, 10, 13 fra kapittel 1, seksjon 8, ? og oppgave 2, 4, 5, 10 fra seksjon 12 i kapittel 3 ? L?r om Dictionaries fra kapittel 5, seksjon 3 Mapping words... 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.Vi regner med at du kan programmere, men du vil etterhvert antagelig f? behov for ? l?re mer om Pythons spissfindigheter. Hvor skal du se? ? NLTK boka kapittel 1, seksjon 4, kapittel 2, seksjon 3 og etterhvert (deler av) kapittel 4. ? F?r eller siden vil du ogs? f? behov for ? konsultere den offisielle Python-dokumentasjonen https://docs.python.org/3/ , s?rlig tutorial og library ? Think Python: How to Think Like a Computer Scientist er en grei og m?lrettet introduksjon til Python. Python-oppsett 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. P? IFIs maskiner gir n? kommandoen ipython (og ipython3) Python 3, mens ipython2 gir Python2. Idle g?r ikke sammen med Python 3 p? FIs Linux-maskiner, men du kan kj?re Python 3 sammen med Idle p? Windows. Python p? hjemmemaskin For Python p? hjemmemaskin viser IN1000-sidene til direkte installering av Python 3, se http://www.mn.uio.no/ifi/tjenester/it/hjelp/startpakke/Ifi/in1000/ . Hvis du vil ha et oppsett for ogs? ? installere diveres pakker med utvidelser, inkludert NLTK, p? en enkel m?te, anbefales du ? installere Anaconda. 1