AI EducademyAIEducademy
🌳

AI-Fundamenten

🌱
AI Seeds

Begin bij nul

🌿
AI Sprouts

Bouw een fundament

🌳
AI Branches

Pas toe in de praktijk

🏕️
AI Canopy

Ga de diepte in

🌲
AI Forest

Beheers AI

🔨

AI-Meesterschap

✏️
AI Sketch

Begin bij nul

🪨
AI Chisel

Bouw een fundament

⚒️
AI Craft

Pas toe in de praktijk

💎
AI Polish

Ga de diepte in

🏆
AI Masterpiece

Beheers AI

🚀

Carrière Klaar

🚀
Interview Startplatform

Start je reis

🌟
Gedragsinterview Meesterschap

Beheers soft skills

💻
Technische Interviews

Slaag voor de codeerronde

🤖
AI- & ML-interviews

ML-interview meesterschap

🏆
Aanbod & verder

Bemachtig het beste aanbod

Alle programma's bekijken→

Lab

7 experimenten geladen
🧠Neuraal netwerk speeltuin🤖AI of mens?💬Prompt lab🎨Beeldgenerator😊Sentimentanalyse💡Chatbot bouwer⚖️Ethiek simulator
🎯Proef-sollicitatieGa naar het lab→
nav.journeyBlog
🎯
Over ons

AI-onderwijs toegankelijk maken voor iedereen, overal

❓
nav.faq

Common questions answered

✉️
Contact

Get in touch with us

⭐
Open Source

Openbaar gebouwd op GitHub

Begin met leren, het is gratis
AI EducademyAIEducademy

MIT-licentie. Open source

Leren

  • Opleidingen
  • Lessen
  • Lab

Community

  • GitHub
  • Bijdragen
  • Gedragscode
  • Over ons
  • FAQ

Ondersteuning

  • Koop een koffie voor me ☕
  • footer.terms
  • footer.privacy
  • footer.contact
AI & Engineering Opleidingen›✏️ AI Sketch›Lessen›Strings en tekstverwerking
📝
AI Sketch • Gemiddeld⏱️ 15 min leestijd

Strings en tekstverwerking

Tekst Is Overal in AI

Voordat een AI je vraag kan begrijpen, een essay kan schrijven of een zin kan vertalen, moet het ruwe tekst verwerken. Elke chatbot, zoekmachine en taalmodel begint met strings - reeksen karakters die menselijke taal vertegenwoordigen.

Begrijpen hoe strings werken opent de deur naar natural language processing, een van de meest opwindende gebieden van kunstmatige intelligentie.

String-Basis

Een string is simpelweg een reeks karakters - letters, cijfers, spaties en symbolen - opgeslagen in volgorde.

message = "Hello, World!"

Elk karakter heeft een positie (index), net als bij een array:

index:  0  1  2  3  4  5  6  7  8  9  10  11  12
char:   H  e  l  l  o  ,     W  o  r   l   d   !
Een string opgesplitst in individuele karakters met indexposities eronder
Onder de motorkap is een string een array van karakters - elk met een eigen index.

Substrings

Een substring is een deel van een string. Uit "Hello, World!" kun je "World" extraheren (indices 7 tot 11). AI-systemen extraheren voortdurend substrings - namen uit zinnen, hashtags uit tweets, of URL's uit webpagina's.

Immutabiliteit

In de meeste talen zijn strings immutable - je kunt een karakter niet ter plekke wijzigen. In plaats daarvan maak je een nieuwe string. Dit is belangrijk voor prestaties: als je AI-pipeline tekst miljoenen keren wijzigt, kan het telkens aanmaken van nieuwe strings vertragen.

🤯

Het complete werk van Shakespeare bevat ongeveer 900.000 woorden. GPT-4 werd getraind op datasets duizenden keren groter - honderden miljarden woorden, allemaal als strings verwerkt voordat ze in getallen werden omgezet.

Hoe ChatGPT Tekst Leest: Tokenisatie

AI-modellen lezen woorden niet zoals mensen. Ze gebruiken tokenisatie - tekst opsplitsen in kleinere stukken genaamd tokens.

Invoer:  "unhappiness"
Tokens:  ["un", "happiness"]

Invoer:  "ChatGPT is brilliant"
Tokens:  ["Chat", "G", "PT", " is", " brilliant"]

Tokenisatie zit tussen karakter- en woordniveau verwerking. Het verwerkt zeldzame woorden door ze in bekende deelstukken te breken, waardoor het vocabulaire beheersbaar blijft.

🤔
Think about it:

Wanneer je een lang, ongebruikelijk woord zoals "antidisestablishmentarianism" typt in ChatGPT, breekt het model het in bekende sub-woord tokens. Waarom is dit beter dan elk mogelijk Engels woord als apart token op te slaan?

Les 2 van 100% voltooid
←Arrays en hash maps

Discussion

Sign in to join the discussion

lessons.suggestEdit

Waarom Tokenisatie Belangrijk Is

  • Een typisch taalmodel heeft een vocabulaire van 50.000–100.000 tokens.
  • Elk token wordt omgezet naar een nummer (zijn ID), dat het model daadwerkelijk verwerkt.
  • De manier waarop tekst getokeniseerd wordt beïnvloedt de kosten - meer tokens betekent meer berekening en hogere API-kosten.

Patroonherkenning - Naalden Vinden in Hooibergen

Een kernbewerking op strings is het zoeken van een patroon in een grotere tekst. Bevat deze e-mail het woord "urgent"? Bevat deze code een beveiligingslek?

De Eenvoudige Aanpak

Schuif het patroon langs de tekst, controleer karakter voor karakter:

tekst:   "the cat sat on the mat"
patroon: "cat"

Positie 0: "the" → geen match
Positie 1: "he " → geen match
Positie 4: "cat" → match gevonden op index 4!

Dit is O(n × m) in het slechtste geval. Voor korte patronen is het prima. Voor het scannen van miljoenen documenten hebben we slimmere aanpakken nodig.

🧠Snelle check

Waarom is naïeve patroonherkenning traag voor zeer grote teksten?

Klassieke String-Uitdagingen

String Omkeren

reverse("hello") → "olleh"

AI gebruikt omkering in sequence-to-sequence modellen - sommige vroege vertaalmodellen keerden de invoerzin om voor betere nauwkeurigheid.

Palindroomdetectie

Een palindroom leest hetzelfde van voor naar achter: "racecar", "madam", "level".

is_palindrome(text):
    return text == reverse(text)

Anagramdetectie

Twee woorden zijn anagrammen als ze dezelfde karakters bevatten in een andere volgorde: "listen" en "silent".

are_anagrams(word1, word2):
    return character_counts(word1) == character_counts(word2)

Dit sluit aan bij het frequentietelpatroon uit de vorige les - hash maps maken het O(n).

🧠Snelle check

Welke aanpak controleert het meest efficiënt of twee woorden anagrammen zijn?

Reguliere Expressies - Patroonherkenning op Steroïden

| Patroon | Matcht | Toepassing | |---------|--------|------------| | \d+ | Een of meer cijfers | Getallen extraheren | | [A-Z][a-z]+ | Een woord met hoofdletter | Eigennamen vinden | | \b\w+@\w+\.\w+\b | E-mailadressen | Data-extractie | | (cat\|dog\|bird) | Een van drie woorden | Classificatietrefwoorden |

AI-datapipelines gebruiken regex uitgebreid voor datacleaning - HTML-tags verwijderen, datums extraheren en ongewenste tekens wegfilteren.

💡

Reguliere expressies zijn krachtig maar lastig. Een slecht geschreven regex kan exponentieel lang duren - bekend als "catastrofale backtracking." Test je patronen altijd op randgevallen.

Echte AI-Tekstverwerkingspipeline

  1. Ruwe tekst → "The café's Wi-Fi isn't working!!!"
  2. Kleine letters → "the café's wi-fi isn't working!!!"
  3. Leestekens verwijderen → "the cafés wifi isnt working"
  4. Tokenisatie → ["the", "café", "s", "wi", "fi", "isn", "t", "working"]
  5. Token-ID's → [1, 8432, 82, 5901, 3344, 2817, 83, 1562]
  6. Het model in → Getallen die de AI kan verwerken

Elke stap omvat stringbewerkingen - knippen, zoeken, vervangen en splitsen.

🤔
Think about it:

Wanneer je een bericht stuurt in een taal zonder spaties (zoals Chinees of Japans), hoe zou tokenisatie anders werken?

🤯

OpenAI's tokeniser splitst "tokenisation" in ["token", "isation"] - twee tokens. Maar "tokenization" wordt ["token", "ization"]. Hetzelfde concept kost verschillende bedragen afhankelijk van de spelling!

🧠Snelle check

Waarom wordt tokenisatie uitgevoerd voordat tekst aan een AI-model wordt gevoed?

Belangrijkste Punten

  • Strings zijn reeksen karakters - het ruwe materiaal voor alle tekst-gebaseerde AI.
  • Tokenisatie vormt de brug tussen menselijke taal en machine learning.
  • Patroonherkenning en regex zijn essentieel voor het opschonen en extraheren van data.
  • Klassieke stringproblemen bouwen het denkvermogen voor AI-tekstverwerking.
  • Elk bericht dat je naar ChatGPT stuurt doorloopt een pipeline van stringbewerkingen.