Taal modeleren: Meervoudsvormen, deel 1

Siri en andere robots zijn geprogrammeerd om taal te genereren. Siri spreekt; andere robots schrijven. Jij heb een programma ontwikkeld kletspraat, dat schrijft. Nu kan je de computer zijn taalcapaciteiten verder ontwikkelen met een rapporteurblok, meervoud, dat een Engels zelfstandig naamwoord als invoer heeft en op de juiste manier het meervoud als uitvoer geeft.
Geen Afbeelding Geen Afbeelding
Een woord in het meervoud zetten voelt bijna automatisch voor een mens, maar dit is niet zo makkelijk als het lijkt: een computer heeft een algoritme nodig om deze taak uit te voeren.
Dit project gebruikt blokken die al voor je gemaakt zij in Snap!'s "Words, sentences"-bibliotheek. Je kan een bibliotheek laden via het Bestandsmenu Geen Afbeelding onder het kopje "Bibliotheken..."
  1. Voor dit project zal je de nieuwe blokken Geen Afbeelding en Geen Afbeelding gebruiken. Je zal ook Geen Afbeelding en Geen Afbeelding nodig hebben, die je al gebruikt hebt in Hoofdstuk 1 Les 2, Kletsen en coderen.

    Probeer alle stukken code in het project (alle negen) en experimenteer met de invoer tot je zeker weet dat je ze begrijpt. Leg voor ieder script uit wat het in het algemeen doet, niet alleen wat het doet met een specifieke invoer. ( Geen Afbeelding rapporteert bijvoorbeeld y, maar je wil eigenlijk ook uitleggen wat laatste letter van rapporteert als 2017 de invoer is.)
  2. Klik op de rapporteur-knop als je het meervoudblok aanmaakt.
    Geen Afbeelding
  3. Hier is een manier om het meervoudblok te beginnen te bouwen. Bouw dit na en test of het in ieder geval werkt voor "day", "boss" en "medicine", zodat je weet of het echt werkt. Als het niet werkt, los dan de problemen op
    Geen Afbeelding
  4. Debugging: Try to find words for which this version of plural does not work correctly. List the words you find. Organize that list, sorting the words into categories according to their last letter. For example, it will get wrong some words that end with the letter h. Try to find many words it gets wrong.
  5. Save your list.
    • Create a Snap! list like this Geen Afbeelding containing all of your words.
    • "H2-Meervoud" Sla je project op. Je zal deze lijst nodig hebben.
  6. Debugging: Om code te schrijven die altijd werkt, moet je situaties vinden waarin het juist niet werkt. Om je code te "breken", moet je rare, zeldzame gevallen bedenken, zelfs invoeren die eigenlijk incorrect zijn. Hieronder staat daar een voorbeeld van, dat een spatie heeft aan het einde. Geen Afbeelding
  7. meervoud zou nu goed moeten werken voor "day", "boss" en "medicijn", 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 het waard om te leren; heel handig voor het testen van meervoud en voor meer ingewikkelde projecten later. Het is alleen niet essentieel om meervoud te bouwen.

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

    For now, don't worry about the words it still gets wrong, as long as it works for "day," "boss," "medicine," and "box."

  2. Vervang in je mapscript het meervoudblok met Geen Afbeelding. Voer het aangepaste script uit. Leg nu uit wat het mapblok in het algemeen doet.
  3. Experimenteer met
    Geen Afbeelding
    en
    Geen Afbeelding
    om te zien wat ze doen. Laat weer het invoervak in laatste letter van leeg, zoals je hier ziet. Dat is de plaatsvervanger 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