Bert's brein

geplaatst: 3-5-2014
 
reageer

Uitgewerkt voorbeeld van de wijze waarop een getal dat via het gehoor wordt waargenomen door de hoorder kan worden gedecodeerd.

terug naar telwoorden

  1. vierhonderddertienduizendachthonderdzevenenzestig
  2. Wat is er minimaal vereist om een willekeurig gesproken getal te begrijpen? Gesproken taal kent geen spaties, dus die kunnen niet behulpzaam zijn om de verschillende onderdelen van het woord te onderscheiden. In het navolgende ga ik het decoderen van een getal bespreken. Al doende zal ik de vereiste regels formuleren en die regels gedurende het betoog zonodig bijstellen. Laat ik beginnen met het meest eenvoudige deel: het vereiste lexicon: (tentatief)
    Lexicon telwoorden (natuurlijke getallen tot 1 miljoen) =
    {één, twee, drie, vier, vijf, zes, zeven, acht, negen, tien, elf, twaalf, ?dertien, ?veertien, -tig
    ?twintig, ?dertig, ?veertig, tachtig, honderd, duizend, en}
    Merk op dat er enige vrijheid bestaat: {veertien, veertig} kunnen als zodanig worden opgenomen in het lexicon, tesamen met een regel wanneer deze woorden te gebruiken. Ze kunnen ook alleen in de regel-component zitten als een regel die formuleert: viertien→veertien; viertig→veertig. Die regels moeten dan wel een codeer- en een decodeervariant hebben. Later in dit stuk ga ik hier nog op in.
    Kortheidshalve zal ik bovenstaande woorden aanduiden als "lexicale elementen" ofwel LE's. Samenstellingen van LE's zal ik aanduiden met "lexicale constructen" oftewel LC's. Als het niet uitmaakt voor de regel of het een LE of een LC is, gebruik ik de notatie L*. De regels zijn tijd-specifiek, d.w.z. dat de volgorde van de L* van belang is. Tussen twee opeenvolgende (zonodig samengestelde) elementen zijn maar twee relaties mogelijk: vooruit en achteruit. Onder "vooruit" versta ik dat het 1ste element iets verandert aan de betekenis van het 2de element. De technische term is "specifier". Binnen deze tekst noteer ik een specifier met een voorwaartse pijl →. Daarbij wordt het LC dat wordt gespecificeert tussen ronde haken gezet: LE → (LC).
    "Achteruit" kan ook. In dat geval verandert het 2de LE iets aan de voorgaande LC. De technische term is "complement". Hier gebruik ik vierkante haken: [LC] ← LE
    Binnen de contekst van dit stukje hebben de termen alleen betrekking op het lexicon van telwoorden als boven gegeven. In een later stadium kan het gebruik hiervan worden uitgebreid naar andere delen van het lexicon.
    De hoorder begint direct met decoderen zodra het woord begint - hij weet niet wanneer het woord afgelopen zal zijn.

    1. Hij hoort: "vier" en herkent een LE.
    2. Op de stappen die nodig zijn voor het herkennen van een LE ga ik hier niet in.
    3. Vervolgens hoort hij "honderd" en herkent een LE.
    4. Deze elementen brengt hij met elkaar in verband: ((vier)honderd)
      Om dit te kunnen doen, moet hij gebruik gemaakt hebben van een regel als [tentatief]:
      1) "de samenstelling van twee LE's is een LC"
      2) "Als een LE gevolgd wordt door een andere LE specificeert de 1ste LE de 2de LE": de "vier" wijzigt de betekenis van "honderd" in een vermenigvuldig-relatie. Als gevolg van deze regels ontstaat "vierhonderd" en niet "honderdvier". De keuze om te stellen dat de "4 de 100 specificeert" en niet dat de "100 de 4 complementeert" lijkt enigszins arbitrair. Als ik er echter van uitga dat er slechts 2 relaties mogelijk zijn, en dat ieder LE ook één van deze 2 moet hebben, dan is het de voor de hand liggende keuze, omdat de 4 in ieder geval het voorgaande woord (niet een telwoord) in ieder geval niet complementeert. Blijft over: 4 specificeert het nakomende element.

      Goed, we zijn nu bij het getal 400, maar de spreker gaat gewoon door.

    5. De hoorder herkent een volgend LE: "dertien"
    6. Er is nu een nieuwe of andere regel nodig, anders zou de hoorder nu 400 x 13 moeten uitrekenen. Sleutel is hier, dat 13 kleiner is dan 400. Zou er niet "dertien" staan, maar "duizend", dan klopt de eerste regel wel: de 400 specificeert de duizend (400.000). Dat betekent dat of (1) er semantiek om de hoek komt kijken, of (2) dat dat semantische onderdeel (welke LE of LC is groter) op de één of andere manier al zit ingebakken in het lexicon en/of de regels.
      Die discussie ga ik hier nog niet in. Ik ga alleen proberen de regels te formuleren. Later in dit stuk bespreek ik de wijze waarop het lexicon ordinale relaties kan bevatten.
      Tweede poging voor een set regels:
      1. L* + L* = LC
      2. Als:  L*1  < L*2
        Dan: L*1  → (L*2)
        semantiek: vermenigvuldig-relatie
        beperking:
        LE2 = {honderd, duizend, miljoen, ....}
        L* is alleen welgevormd als L*2 minimaal 1 orde groter is dan L*1
        voorbeeld: (4,1000)wordt 4000
      3. Als: L*1  > L*2
        Dan: [L*1] ← (L*2)
        semantiek: optel-relatie
        voorbeeld: (400,13)wordt 413

      Door maar weer. Inmiddels heb ik het getal 413 onderdeel voor onderdeel goed begrepen, maar het getal gaat door. Na de laatste 13 kan de LE niet meer worden gecomplementeerd, want daarvoor is vereist dat er iets kleiners zou komen dan de tientallen, en dat is er niet. Daaruit volgt dat ofwel het getal nu klaar is, ofwel dat deze L* als specifier dient voor een nog grotere L*.

    7. Dat laatste blijkt het geval te zijn, want ik herken alweer een lE: "duizend".
    8. De LC 413 is (minimaal) één orde kleiner dan 1000, dus het getal blijft welgevormd. Zou ik nu bijvoorbeeld "honderd" of "zes" hebben verstaan, dan zou het getal als onwelgevormd worden afgekeurd. Nu krijg ik:
      [[4 →(100)]← 13] → (1000) = 413000

    9. Het getal is nog steeds niet klaar, want ik herken alweer een LE: "acht".
    10. Op dit moment ontstaat er ambiguïteit: het getal zou nu klaar kunnen zijn, en dan is het 413008, te noteren als: [[4 →(100)]← 13] → (1000)] ← 8.
      Voor ik tot de definitieve beslissing kom dat dit het bedoelde getal is, moet ik wachten op het volgend LE.

    11. Ik hoor nu het LE "honderd".
    12. Ook dit zou een compleet getal kunnen zijn: [[4 →(100)]← 13] → (1000)] ← (8 → (100)) = 413800. Maar nog altijd ben ik niet klaar.

    13. Het volgende LE luidt: "zeven"
    14. [[4 →(100)]← 13] → (1000)] ← ([8 → (100)]← 7) = 413807
      Nog altijd kan ik niet beslissen of mijn getal voltooid is. Wachten op het volgende LE.

    15. Nu komt er een vreemd element. Ik versta het LE "en".
    16. Dit element komt in de nederlandse hoofdtelwoorden alleen (verplicht) voor van 21 tot 100. I.e. bij zeven-en-zestig, drie-en-veertig etc. Het kan voorkomen bij getallen groter dan 100, maar dan is het optioneel, bijvoorbeeld honderd-en-een. Doorgaans lijkt het dan een indicatie dat het getal is afgelopen, maar dat hoeft niet: "honderd-en-een duizend" is mogelijk maar niet gebruikelijk.
      Ook zonder het woordje "en" zou er -gegeven de bovenstaande regels- sprake van zijn dat "zeven" een specifier is bij het erop volgende LE. Het verschil is, dat de eerdere specifier-relatie eruit bestond dat LE(1) een vermenigvuldigingsfactor was voor LE(2). Ten gevolge van het woordje "en" wordt het een optel-relatie. M.a.w.: het woord grijpt in op de semantiek van de relatie. Om de wijziging van de relatie aan te geven, krijgt de haakje die volgen een ander kleurtje.
      Het LE "en" moet vanwege het bovenstaande een eigen set regels hebben:
      1. Als LE + "en"
        Dan LE1→ (LE2)
      2. beperking: LE2 = {twintig, dertig, veertig, vijftig, zestig, zeventig, tachtig, negentig}
        semantiek: "en" modificeert de semantiek van de specify-relatie van "vermenigvuldigen" naar "optellen"
      Daaruit volgt dat de uitdrukking niet welgevormd is als er iets anders volgt: drie-en-duizend is dus niet goed.
      We zijn nu bij: [[4 →(100)]← 13] → (1000)] ← ([8 → (100)]← (7 → (...))

    17. Het volgende LE luidt: "zestig" Dit woord past binnen de beperking die is opgelegd door het voorgaande LE. Ik kom uit bij[[4 →(100)]← 13] → (1000)] ← ([8 → (100)]← (7 → (60))
      Er zou nu nog een LE kunnen volgen van een orde groter, bijvoorbeeld "miljoen" of "miljard". Pas als er iets anders volgt dan een LE uit het lexicon van de telwoorden kan beslist worden dat het woord is afgelopen, en er een nieuw woord is begonnen.


  3. de kleine getallen
  4. In het voorgaande heb ik dat decodering van de woorden "dertien" en "zestig" genegeerd. De getallen t/m 14 en de getallen 19 t/m 99 lijken een eigen subsetje van regels te hebben. Het is een kwestie van stijl om dit idiomatisch te maken, of om dit ook met een (sub-) lexicon en een aantal (sub-)regels in kaart te brengen. De vraag is -gegeven het kleine aantal gevallen- wat het meest efficient is. Om niet incompleet te zijn zal ik e.e.a. toch als set van regels onderzoeken.
    Zonder al te veel commentaar geef ik de regels:
    De getallen 1 t/m 10 zijn niet problematisch, omdat de LE's zijn en geen LC's.
    11 en 12 moeten worden opgevat als LE. Dit wordt aan de decoderingskant nooit problematisch, omdat "twaalf-en-zestig" niet voorkomt. Aan de coderingskant zal aparte aandacht besteed moeten worden aan deze getallen.
    13 en 14 zijn wel LC's. Dit vereist dat het lexicon de elementen {der-, veer-} bevat.
    regels:
    • Als LE1 element van {der-, veer-, vijf, zes, zeven, acht, negen}
      en
      Als LE2 = {tien}
      Dan LE1  → (LE2)
      semantiek: optel-relatie.
    Hiermee zijn {dertien, veertien, vijftien, zestien, zeventien, achttien, negentien} beschreven.
    Voor het element {-tig} geldt iets dergelijks:
    • Als LE1 element van {twin-, der-, veer-, vijf, zes, zeven, tacht, negen}
      en
      Als LE2 = {-tig}
      Dan [LE1] ←  LE2
      semantiek: vermenigvuldig-relatie.

 

Bert's werk