Taal modelleren: Meervoudsvormen, deel 1

Siri, ChatGPT en vele andere bots zijn geprogrammeerd om taal te genereren. Siri spreekt, andere bots schrijven, zoals ChatGPT en Bard. Jij hebt zelf al ook een programma ontwikkeld dat schrijft, kletspraat. Je gaat nu de taalcapaciteiten van jouw programma verder ontwikkelen met het functieblok meervoud. Dit blok heeft een Engels zelfstandig naamwoord als invoer en geeft een correct meervoud als uitvoer.

Geen Afbeelding Geen Afbeelding

Een woord in het meervoud zetten lijkt vrijwel automatisch te gaan voor een mens, maar het is minder makkelijk dan het lijkt. Een computer heeft een algoritme nodig om deze taak uit te voeren.
Dit project gebruikt blokken die al voor je klaar staan in Snap! Ga naar het Bestandsmenu Geen Afbeelding, zoek het kopje 'Bibliotheken...' in de lijst en importeer de 'Woorden en zinnen'-bibliotheek. We werken hier met Engelse woorden.
  1. In dit project gebruik je de nieuwe blokken Geen Afbeelding en Geen Afbeelding. Je zal ook Geen Afbeelding en Geen Afbeelding nodig hebben. Deze gebruikte je al in Hoofdstuk 1 Les 2, Kletsen en coderen.



    Probeer alle code-bloken (9) uit en experimenteer met de invoer tot je zeker weet dat je ze begrijpt. Leg voor ieder script uit wat het in het algemeen doet, dus niet alleen wat er gebeurt bij een specifieke invoer. Want het eerste blok Geen Afbeelding rapporteert een 'y', maar als '2025' de invoer is in laatste letter van, dan rapporteert dit script een cijfer. Jouw beschrijving moet dus alle scenario's dekken.
  2. Kies de Functie-knop als je het meervoudblok aanmaakt.
    Geen Afbeelding

  3. Dit is een manier om te starten met het bouwen van het meervoudblok. Bouw dit na en test of het in ieder geval werkt voor 'day', 'boss' en 'medicine', om er zeker van te zijn dat het echt werkt. Als dat niet zo is, bewerk en verbeter het dan.

    Geen Afbeelding

  4. Debugging: Probeer woorden te vinden waarvoor deze versie van meervoud niet goed werkt. Maak een lijst van die woorden. Sorteer de woorden op basis van hun laatste letter. Het zal bijvoorbeeld een aantal woorden fout hebben die eindigen op de letter 'h'. Noteer ook andere probleemwoorden.

  5. Sla je lijst op
    • Maak een Snap! lijst met alle woorden, zoals Geen Afbeelding.
    • "H2-Meervoud"
      Je zal deze lijst straks nodig hebben.

  6. Debugging: Om code te schrijven die altijd werkt, moet je situaties vinden waarin het juist niet werkt. Om je code te 'kraken', moet je rare, zeldzame gevallen bedenken, zelfs invoeren die eigenlijk niet correct zijn. Hieronder een voorbeeld met een spatie aan het eind.
    Geen Afbeelding

  7. meervoud zou nu goed moeten werken voor 'day', 'boss' en 'medicine'. Maar het werkt waarschijnlijk nog niet voor 'box'.
    Geen Afbeelding

    Pas je meervoudblok aan zodat het werkt voor woorden die eindigen op een 'x'.
    Test het om zeker te weten dat het goed werkt.





Je kan een vergelijkbaar blok maken om werkwoorden in het Engels te verbuigen. Je kan het ook voor een andere taal zoals Frans of Spaans proberen. Kijk hiervoor naar de Een stapje verder-sectie onderaan de pagina.

De volgende stappen zijn de moeite waard om te leren. Handig voor het testen van meervoud, en voor meer ingewikkelde projecten later. Maar niet essentieel voor het bouwen van meervoud.


  1. Gebruik map om alle woorden in je lijst te testen. Laat het invoerveld in meervoud leeg, zoals je hier ziet. Het mapblok voegt elk element van de lijst in dat invoervak in en rapporteert een lijst met de resultaten.

    Geen Afbeelding

    Maak je voorlopig geen zorgen over de woorden die nog steeds fout gaan, zolang het maar werkt voor 'day', 'boss' en 'medicine' and 'box'.

  2. Vervang in je mapscript het meervoudblok door Geen Afbeelding.
    Voer het aangepaste script uit. Leg nu uit wat het mapblok in het algemeen doet.

  3. Experimenteer met deze scripts om te zien wat ze doen:

    Geen Afbeelding

    Geen Afbeelding

    Laat weer het invoervak van laatste letter van leeg, zoals je hier ziet. Dat is de tijdelijke aanduiding voor behoud om ieder woord in de lijst te testen. Leg uit wat het behoudblok doet.
 
  1. Als je een andere taal kent, bouw dan een blok dat een voornaamwoord en een werkwoord als invoer heeft en de correcte vorm van het werkwoord voor dat voornaamwoord teruggeeft. Bijvoorbeeld:

    Geen Afbeelding Geen Afbeelding

TerugVolgende