Du er ikke logget inn. Så lenge du ikke er logget inn går du glipp av muligheten for å holde styr på din egen progresjon.

Logg inn

Valgte tags:

Filtrering:

Skriv ut:

NoReC-øving 0

Denne oppgaven er ment for å bli kjent med norec-oppsettet som brukes i IN2110. Se oppgave 1 for tester på dokumentnivå, og oppgave 2 for å jobbe litt med metadataene til dokumentene.

NoReC (Norwegian Review Corpus), er en samling anmeldelser som alle har terningkast. Korpuset har vært utangspunkt for mye forskning de siste årene hos LTG. Du kan lese mer om NoReC her.

I IN2110 har vi tilgang til en enkel klasse, kalt "norec", som lar oss lett få tilgang til dokumenter og metadata.

Vi importerer norec-klassen slik:

from in2110.corpora import norec

Det er hovedsaklig sju metoder som er interessante:

1)

norec.get_document(dokumentid)

Denne henter ut teksten til ett dokument gitt en dokument-id. Dokument-id-ene har opprinnelig seks sifre, men id-er som begynner på 0 får disse fjernet. I denne klassen er id-ene etterfulgt av endelsen ".txt". Vi må derfor skrive "335.txt" for dokument 000335.txt".

Eksempel på kjøring:

doc = norec.get_document("335.txt")

print(doc[:500])

Utskrift av de 500 første tegnene:

Frikjent S02 E01 – E04

Dramakrimserien Frikjent tyr til svært billige såpeserietriks for å skru til dramatikken i sin andre sesong.

Stikkordene er hukommelsestap og sjokkerende familieforbindelser, og disse parodisk slitte virkemidlene gjør at jeg ler høyt på steder hvor jeg tror serieskaperne ønsker at jeg egentlig skal bli revet med.

Jeg likte den første sesongen av Frikjent ganske godt. Handlingstrådene som gikk til utlandet led av dårlig dialog og en del overspill, men det var en god nerv

2)

norec.get_metadata(dokumentid)

Denne henter ut metadataene til et dokument gitt dokument-id-en. Se lenger ned for mer info om metadataene.

Eksempel på kjøring:

meta = norec.get_metadata("335.txt")
print(meta)

Utskrift:

{'authors': ['Sigurd Vik'], 'category': 'screen', 'day': 21, 'excerpt': 'Til tider ufrivillig morsomt.', 'id': 335, 'language': 'nb', 'month': 10, 'rating': 3, 'source': 'p3', 'source-category': 'tv', 'source-id': 229912, 'source-tags': [], 'split': 'dev', 'tags': ['tv'], 'title': 'Frikjent S02 E01 – E04', 'url': 'http://p3.no/filmpolitiet/frikjent-s02', 'year': 2016}

Hvis vi for eksempel vil hente ut kategorien til et dokument, kan vi skrive følgende:
OBS! Kategoriene vi bruker er de som ligger under "category". "source-category" (kildekategori) er mer løst definerte kategorier fra de opprinnelige tekstene, og brukes ikke.

meta = norec.get_metadata("335.txt")
print(meta["category"])

Utskrift:

screen

3)

norec.random_document()

Denne metoden henter ut et id-en til et tilfeldig dokument.
Eksempelbruk:

tilfeldig = norec.random_document()
print(tilfeldig)

Utskrift:

702642.txt

4)

norec.document_list()

Eksempel på kjøring. Vi skriver ut id-ene til de ti første dokumentene:

docs = norec.document_list()
print(docs[:10])

Utskrift

['3158.txt', '500607.txt', '500608.txt', '500605.txt', '500606.txt', '3159.txt', '3162.txt', '3163.txt', '110333.txt', '3164.txt']

5-7)

norec.train_set()

norec.dev_set()

norec.test_set()

Tre metoder som henter ut trenings-, evaluerings- og testdatasettene. Disse returnerer en iterator over alle dokumentene i de tre "split"-ene.

Disse returnerer generatorer med Document-objekter. Et document-objekt har to variabler vi kan få tak i, .text og .metadata.

Vi kan bruke .text og .metadata for å få samme info som vi fikk med .get_document() og .get_metadata(). I eksempelet under tar vi det første dokumentet i train-klassen. Her bruker vi next() bare som en kjapp måte å ta ut ett element fra generatoren på.

train = norec.train_set()

doc = next(train)

print(doc.text[:500])
print(doc.metadata)

Utskrift:

Magnolia

Magnolia er en lappeteppe-film i samme klasse som "Short Cuts", "Playing by heart" og "Happiness". Vi møter forskjellige menneskeskjebner i Los Angeles, der kjærlighet, ensomhet og svik er et gjennomgående tema. Og i løpet av filmen knyttes alle skjebnene på en eller annen måte til hverandre.

Mange historier

Tv-produsent Earl Partridge ligger for døden. Hans unge kone sliter med å forberede seg på det kommende tapet. Hans sønn, Frank Mackey, har ikke sett faren på 20 år, men hjelpepl
{'authors': ['Birger Vestmo'], 'category': 'screen', 'day': 19, 'excerpt': 'Tom Cruise imponerer.', 'id': 3158, 'language': 'nb', 'month': 2, 'rating': 5, 'source': 'p3', 'source-category': 'film', 'source-id': 166211, 'source-tags': [], 'split': 'train', 'tags': ['movie'], 'title': 'Magnolia', 'url': 'http://p3.no/filmpolitiet/magnolia', 'year': 1999}

NoReC-dokumentene har flere forskjellige metadataer, som ligger som nøkler i metadata-ordboka. "category" refererer til den grove kategoriinndelingen vi bruker i obligen, og som er nevnt i artikkelen, mens "source-category" er en noe finere inndeling fra de opprinnelige tekstene, som vi ikke skal bruke.