AI FÖR NATURLIGT SPRÅK
Kursinfo
Kursmaterial
FAQ
Kursmaterial
/
Kapitel
Slutuppgift: Hitta nyckelord
Bearbeta text och hitta nyckelord
Följande filer används i uppgiften:
• text1.txt - Text från Gustav III:s Wikipedia-sida.
• text2.txt - Text från en annan historisk persons Wikipedia-sida.
För att spara filerna, högerklicka på länken och välj att spara filen. Du behöver inte ladda ned några filer för att genomföra uppgiften, utan de är per automatik tillgängliga för användning i kodcellerna nedan.
I denna slutuppgift är vi intresserade av att ta fram nyckelorden i en text. Detta är intressant för att identifiera vilka ord som verkar definiera texten.
Vi använder oss av samma data som föregående deluppgift, Gustav III:s Wikipedia-sida, och läser in filen rad för rad.
Likt föregående uppgift importerar vi Spacy och laddar ned den svenska modellen. Denna gång ska vi använda oss av ytterligare en komponent som finns i vår pipeline: en lemmatiserare. Vad den gör är att den försöker hitta grundformen till varje ord. Vår pipeline kommer därför först dela upp meningen i tokens och lemmatisera varje token.
I textdata förekommer det många ord vars syfte är att hjälpa oss att förstå meningars betydelse. Sådana ord kan vara ‘att’, ‘och’, ‘eller’, m.m. Dessa ord kallar vi stoppord. Stoppord brukar vara vanligt förekommande, och när vi ska hitta nyckelorden i en text så vill vi undvika att räkna med dem. (De säger helt enkelt inte så mycket om just vår text.)
I nästa kodcell ska du tokenisera textdata. För att endast spara token som kan räknas som nyckelord ska du bara spara de som innehåller alfabetiska tecken och som inte är stoppord. Information om en token innehåller alfabetiska tecken och om den är ett stoppord finner du hos en tokens attribut (se dokumentation om attribut. Den token du sparar ska vara ett lemma av ordet. Ordets lemma går också att hitta bland en tokens attribut (välj det attribut för lemman som representeras av en sträng).
För att verifiera att du har en fungerande lösning, innan du applicerar den på hela texten, ska du i följande kodcell bearbeta meningen “Kristina blev Sveriges drottning år 1632.”.
När du får ett korrekt resultat kan du tillämpa din lösning på all textdata i nästa kodcell.
Du ska nu använda dig av resultatet i föregående steg för att ta fram frekvensen per token. Spara sedan dem i en sorterad lista, från hög frekvens till låg, där varje element i listan är en tuple innehållandes ordet och dess frekvens.
Bra jobbat! I nästa kodcell använder vi frekvensen för att skapa ett ordmoln med våra nyckelord.
Tycker du att orden fångar den text som vi har arbetat på?
Det finns en till text-fil, text2.txt
, med data som har extraherats från en Wikipedia-sida, och som du kan upprepa processen på om du vill. Kan du lista ut vem Wikipedia-sidan tillhör?
Om du kör om kodcellerna med annan data behöver du använda dig av Kör kod bara, då Registrera svar genomför tester som är specifika för text1.txt
.
Denna webbsajt innehåller kursmaterialet för kursen ETE335 AI för naturligt språk.
Materialet är licenserat under en Creative Commons Erkännande 4.0 Internationell licens.
Copyright © 2022, Marco Kuhlmann & Oskar Holmström