Spring til indhold
12+ år Øvet ⏱ 30-45 minutter

Byg en mini-sprogmodel, der skriver historier

Find ud af, hvordan chatbots gætter det næste ord – ved at bygge din egen lille sprogmodel i Python, der skriver skøre eventyr.

Illustration af et neuralt netværk

En chatbot skriver sit svar et lille stykke ad gangen – ofte et ord eller en del af et ord. Hver gang gætter den, hvad der passer bedst som det næste. I dette projekt bygger du din egen, meget lille udgave. Så kan du selv se, hvordan en computer kan “lære” at skrive.

Sådan gør du

  1. Åbn en Python-editor. Thonny er gratis og nem at komme i gang med. Du kan også bruge IDLE, der følger med Python fra python.org.
  2. Kopiér koden nedenfor ind, og kør den. Kør den flere gange – du får en ny historie hver gang.
  3. Kig på den første linje, programmet skriver. Efter “Bit” har modellen set ordene elskede, byggede og en. Det er alt, hvad den ved om “Bit”.
  4. Forstå tricket: random.choice vælger et tilfældigt ord fra listen. Står et ord der to gange, bliver det valgt dobbelt så tit. Sådan lærer modellen, hvad der er mest sandsynligt.
  5. Skift teksten ud med din egen – en stil, du selv har skrevet, eller et eventyr af H.C. Andersen (de er så gamle, at alle må bruge dem). Jo mere tekst, jo flere muligheder har modellen.

Eksempel (Python)

import random

tekst = """Der var engang en lille robot, der hed Bit.
Bit elskede at bygge ting. Bit byggede en raket, og raketten fløj til månen.
På månen mødte Bit en kat. Katten elskede også at bygge ting.
Sammen byggede de en robot, der kunne bage pandekager.
Robotten bagte tusind pandekager, og katten spiste dem alle sammen."""

# 1. Træn modellen: husk hvilke ord der kommer efter hvert ord
ordliste = tekst.split()
model = {}
for i in range(len(ordliste) - 1):
    nu = ordliste[i]
    naeste = ordliste[i + 1]
    if nu not in model:
        model[nu] = []
    model[nu].append(naeste)

print(model["Bit"])   # se hvad modellen har lært om ordet "Bit"

# 2. Skriv en ny historie: start med ét ord, og gæt det næste igen og igen
nu = "Bit"
historie = [nu]
for _ in range(30):
    if nu not in model:
        break
    nu = random.choice(model[nu])
    historie.append(nu)

print(" ".join(historie))

💡 For modellen er “Bit” og “Bit.” (med punktum) to forskellige ord. Det er faktisk smart: så lærer den også, hvornår en sætning slutter.

Rigtige sprogmodeller kigger på meget mere end det sidste ord, og de har lært af enorme mængder tekst. Men grundidéen er den samme: gæt det næste ord. Vil du vide mere, så læs artiklen om, hvad AI egentlig er – eller træn en AI, der kan se, i Lav en AI, der kan spille sten, saks, papir.

🧠 Udfordring – prøv selv

Lad modellen huske to ord i stedet for ét: brug de to sidste ord som nøgle i ordbogen. Bliver historierne bedre – eller begynder den bare at kopiere den oprindelige tekst? Prøv med både en kort og en lang tekst, og se forskellen.