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 zelfstandig naamwoord als invoer heeft en op de juiste manier het meervoud als uitvoer geeft.

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 gebruiken, 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. ( rapporteert bijvoorbeeld y, maar je wil eigenlijk ook uitleggen wat laatste letter van rapporteert als 2017 de invoer is.)
  2. Je zal Geen Afbeelding niet nodig hebben voor dit project, maar je vindt het misschien interessant om het te proberen met de woorden "when", "where", "what", "wherefore". Taalkundigen gebruiken bewijs zoals dit om de geschiedenis van taal te begrijpen.
    Klik op de rapporteur-knop als je het meervoud-blok aanmaakt.
  3. Here's one way to start building the plural block. Build this much and test it out on at least "day" and "boss" and "medicine," to make sure it works correctly for those. If it does not, edit and fix it.
  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 containing all of your words.
    • "H2-Meervoud" Sla je bestand op. Je zal deze lijst nodig hebben.
  6. Debugging: To write code that works, you want to try to find situations in which it does not work. "Breaking it" requires thinking of wild and exceptional cases, even including inputs that are incorrect in some way, like this example, which has a space at the end.

  7. plural should now work correctly for "day" and "boss" and "medicine," but it probably doesn't yet work correctly for the word "box"
    .

    Edit your plural block to make it work for words that end with x. Test it to make sure it does work properly.

You can do the same for conjugating verbs in Spanish or some other language you choose. See the Take It Further section at the bottom.

The next two steps are worth learning—very useful for testing plural and in more advanced work later on—but not essential for building plural.

  1. Use map to test all the words on your list. Leave the slot in plural empty, as you see here. The map block inserts each element of the list into that slot and reports a list of the results.

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

  2. In your map script, replace plural with. Try it. Now explain what the map block does, in general.
  3. Experiment with

    and

    to see what they do. Again, leave the slot in last letter of empty, as you see here. That is the placeholder for keep to test each word the list. Explain what the keep block does.
 
  1. If you know another language, build a block that takes a pronoun and verb as input and outputs the correct form of that verb. For example:
TerugVolgende