ID.nl logo
Programmeren in Python met ChatGPT - Deel 4
© Alexander Limbach
Huis

Programmeren in Python met ChatGPT - Deel 4

ChatGPT is niet alleen in staat om vragen te beantwoorden, teksten samen te vatten en tags aan teksten toe te kennen. Je kunt er ook teksten mee vertalen of naar andere vormen transformeren. In dit vierde deel van onze reeks over de OpenAI-API tonen we je hoe je dat doet in Python.

In dit vierde deel laten we zien dat ChatGPT prima teksten kan omzetten:

  • In een vertaling
  • In een gedicht
  • In een computertaal
  • Taalherkenning
  • Aanspreekvorm veranderen

Lees ook: Geen talenknobbel (meer)? Deze (ver)taaltools helpen je uit de brand

Code downloaden In dit deel worden wat voorbeelden van stukken code gegeven. Omdat overtikken van code erg foutgevoelig is, kun je die code beter downloaden en daarna bekijken of kopiëren. Het bestand, gptcode-dl4.txt is beschikbaar via deze webpagina.

Een groot taalmodel, zoals dat van ChatGPT, kun je eigenlijk beschouwen als een soort krachtige rekenmachine die niet met getallen werkt, maar met woorden. Daardoor kun je tekst omzetten in een ander soort tekst. Een tekst van het Engels naar het Nederlands vertalen? Van een familiaire naar een formele toon? Of, als je met programmeertalen werkt, van tekst naar een tabel in HTML? Het is allemaal mogelijk en vrij eenvoudig in je eigen programma’s te integreren.

Basiscode

In dit vierde deel van deze reeks houden we onze code eenvoudig, zodat we de variëteit van transformaties van teksten kunnen illustreren die met de OpenAI-API mogelijk zijn. We gaan dus geen Word-bestanden inlezen, maar de te transformeren teksten als korte strings in onze code zetten.

Voor alle voorbeelden in dit artikel gebruiken we daarom de volgende basiscode:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

Deze code gebruikten we ook al in het derde deel van deze reeks. Vervang de waarde van API_KEY door je eigen API-sleutel en kies eventueel een ander model dan gpt-3.5-turbo. Zo is het model gpt-4 taalkundig veel sterker, maar dat kost wel meer.

GPT-4 is taalkundig sterker dan GPT-3.5, maar wel een factor twintig duurder.

Vertaalmachine

Als we hiermee een tekst willen vertalen, hebben we een systeemprompt nodig met de vertaalopdracht en een gebruikersprompt met de te vertalen tekst. Dat doe je door de volgende regels code aan het einde van de basiscode toe te voegen:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

Sla het script onder de naam translate.py op in Visual Studio Code met Ctrl+S en open een opdrachtregel met het menu Terminal / New Terminal. Klik dan rechtsboven op het afspeelknopje (het driehoekje met de tooltip Run Python File als je erboven blijft hangen). Als alles goed gaat, krijg je nu in de terminal een Nederlandse vertaling van de Engelse tekst.

Dichterlijke vrijheid

Dat vertalen hoeft niet altijd heel letterlijk te zijn. Je kunt ook vragen om een haiku te maken die een tekst beschrijft:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

We hebben als gebruikersprompt gewoon de lead van een artikel van de website van NRC ingevoerd. Het taalmodel maakt daarvan de volgende haiku:

Wagnerstrijders gaan,

Onder de rook van Moskou,

Putsch nek omgedraaid.

Op deze manier zou je een programma kunnen schrijven dat je elke ochtend het nieuws in de vorm van haiku’s toont.

Universele vertaalmachine

De taalmodellen van OpenAI zijn getraind op teksten in allerlei talen en die talen worden zelfs automatisch herkend. Merk op dat we in de systeemprompt van ons vertaalscript niet vroegen om de tekst van het Engels naar het Nederlands te vertalen. We vroegen simpelweg om de tekst naar het Nederlands te vertalen. Dat had ook gewerkt als we een Franse tekst of een tekst in een andere taal hadden opgegeven als gebruikersprompt.

Taalbarrière?

Met een vertaalapparaat kom je er altijd uit

Die mogelijkheid om de taal te herkennen kunnen we ook gebruiken. We vragen dan eerst wat de taal is van de gegeven tekst en vragen dan pas om die te vertalen. We kunnen die laatste opdracht zelfs nog explicieter maken door te vragen om uit de herkende taal te vertalen. Dat ziet er dan als volgt uit, met enkele voorbeelden in verschillende talen:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

Zoals je ziet, zijn we in LANGUAGE_PROMPT vrij expliciet geweest. Als we gewoon vragen “What language is this?”, krijgen we antwoorden als “This is Chinese” of “This language is Italian”. Dat willen we niet. Ook een antwoord als “French.” met een punt op het einde willen we zo vermijden, maar zelfs na het expliciet te vragen blijft het taalmodel dit meestal met een punt eindigen. Daarom dat we met rstrip(".") dit nog verwijderen.

Sla een andere toon aan

Je kunt met taal allerlei registers bespelen. In een formele sollicitatiebrief sla je een andere toon aan dan in een appje naar je vrienden. Ook daarmee kunnen de taalmodellen van OpenAI aan de slag. Je kunt een tekst eenvoudig naar een andere toon omzetten. Een voorbeeld maakt dit duidelijk:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

Computertalen omzetten

Op dezelfde manier kunnen we computertalen vertalen. Maar een omzetting van bijvoorbeeld JSON naar HTML doe je beter met een Python-bibliotheek die daarin gespecialiseerd is. Waar taalmodellen wel goed in zijn, is het omzetten van een tekstuele beschrijving van een gebruiker naar een computertaal. Stel dat je in een programma bestellingen van een gebruiker opneemt, dan kun je het resultaat naar een tabel in HTML laten omzetten:

De code kun je bekijken in het bestand gptcode-dl4.txt, te downloaden via deze pagina.

Het resultaat is inderdaad een HTML-bestand met een tabel met de juiste gegevens.

Maak een HTML-tabel op basis van een tekst.

En verder

Teksten transformeren, in alle mogelijke vormen, is een krachtige functie waarvoor je ChatGPT en dus ook de achterliggende taalmodellen via de OpenAI-API kunt inzetten. Zo breid je eenvoudig je eigen programma’s uit met allerlei transformaties van teksten. We hebben hier nog maar een kleine greep van de mogelijkheden getoond. Titels beschrijven in emoji’s? Handleidingen naar gedichten omzetten? Tweeten in de stijl van Donald Trump? Het is zo gebeurd.

Volgende week maandag het vijfde en laatste deel van deze reeks! Hierin gaan we de OpenAI-API nog interactiever toepassen en echte gesprekken voeren.

Lees ook:

▼ Volgende artikel
Parfum, eau de parfum of eau de toilette: wat is het verschil en wat moet je kiezen?
© Leonid Iastremskyi
Gezond leven

Parfum, eau de parfum of eau de toilette: wat is het verschil en wat moet je kiezen?

Je staat in de parfumerie en ziet drie flacons die er bijna identiek uitzien. De naam is hetzelfde en het merk is hetzelfde, maar het prijsverschil tussen die drie is groot. Dat komt doordat er eigenlijk drie verschillende varianten zijn: parfum, eau de parfum en eau de toilette. Hoewel het verleidelijk is om simpelweg op het prijskaartje af te gaan, is het slim om te weten wat je precies koopt. De verschillen tussen die drie zijn namelijk groter dan je denkt. Hoe dat precies zit, lees je hier.

Dit artikel in het kort

Twijfel je in de winkel vaak tussen parfum, eau de parfum of eau de toilette? In dit artikel leggen we precies uit wat de verschillen zijn in prijs, geursterkte en houdbaarheid. Je ontdekt welke variant het beste past bij jou en we geven praktische tips om te voorkomen dat je dure luchtje te snel vervliegt.

Lees ook: Zo kies je een parfum dat écht bij je past

Om de juiste keuze te maken, moet je eerst begrijpen hoe een geur eigenlijk in elkaar zit. In de basis bestaat elk luchtje uit een mengsel van alcohol, water en geurstoffen (ook wel parfumolie genoemd). De alcohol fungeert als de drager: zodra je sprayt, verdampt de alcohol en blijven de geurstoffen achter op je huid. Het grote onderscheid tussen de verschillende varianten zit hem puur in de concentratie van die parfumolie. De vuistregel is simpel: hoe hoger het percentage geurstoffen, hoe intenser de geur is en hoe langer je er plezier van hebt.

Parfum (extrait de parfum)

Als we het in de volksmond hebben over 'parfum', bedoelen we vaak gewoon een lekker luchtje. Maar in de officiële termen is parfum (of extrait de parfum) de meest pure en kostbare variant die je kunt kopen. Met een concentratie aan geurstoffen die meestal tussen de 20 en 40 procent ligt, is dit de absolute topklasse.

Omdat de concentratie zo hoog is, bevat deze variant relatief weinig alcohol. Dit maakt puur parfum vaak een uitstekende keuze voor mensen met een gevoelige huid, omdat alcohol de huid kan uitdrogen. De geur is vol, diep en blijft met gemak de hele dag - en vaak zelfs de volgende ochtend nog - hangen. Je hebt er extreem weinig van nodig; vaak wordt parfum daarom niet in een sprayfles verkocht, maar in een klein flesje waarmee je een paar druppels op de huid dept.

Eau de parfum (EDP)

Kijk je in het badkamerkastje van de gemiddelde Nederlander, dan is de kans groot dat je daar een eau de parfum aantreft. Met een geurconcentratie van 15 tot 20 procent biedt deze variant de gulden middenweg. Het is minder zwaar en olieachtig dan puur parfum, maar krachtig genoeg om een hele werkdag of een avond uit mee te gaan. Meestal blijft een eau de parfum zo'n zes tot acht uur goed waarneembaar.

Eau de parfum richt zich vaak op de zogenoemde 'hartnoten' van een geur. Dit zijn de geuren die tevoorschijn komen nadat de eerste alcohol is verdampt. Hierdoor is de geur vaak wat dieper en warmer, wat hem geschikt maakt voor zowel dagelijks gebruik als speciale gelegenheden.

Eau de toilette (EDT)

De term 'eau de toilette' klinkt chique, maar betekent letterlijk 'toiletwater'. Dit stamt uit de tijd dat men deze geur gebruikte om zich in de ochtend mee op te frissen ('toilet maken'). Deze variant is met een percentage van 5 tot 15 procent geurstoffen een stuk lichter en vluchtiger dan (eau de) parfum.

Waar een eau de parfum de diepte in gaat, focust een eau de toilette zich meestal op de toptonen. Dit zijn vaak frisse citrus- of fruitgeuren die je direct ruikt bij het sprayen, maar die ook sneller vervliegen. Een eau de toilette blijft gemiddeld drie tot vijf uur hangen. Het is dan ook een goede keuze voor mensen die niet van zware, bedwelmende geuren houden, of voor gebruik op kantoor waar je je collega's niet wilt overweldigen. Houd er wel rekening mee dat je deze geur halverwege de dag waarschijnlijk even opnieuw moet aanbrengen.

Prijs versus kwaliteit: wat is nu echt goedkoper?

Het lijkt een simpele rekensom: een grote fles eau de toilette is aan de kassa vaak goedkoper dan een klein flesje eau de parfum. Toch kan die goedkopere fles op de lange termijn duurkoop zijn. Omdat eau de toilette sneller vervliegt, heb je de neiging om royaal te sprayen en dit gedurende de dag te herhalen. Hierdoor gaat de fles veel sneller leeg.

Bij een eau de parfum of puur parfum is de aanschafprijs hoger, maar heb je aan één keer een beetje aanbrengen in de ochtend vaak genoeg voor de hele dag. Je doet dus aanzienlijk langer met de flacon.

Wanneer draag je wat?

Als je twijfelt over welke variant je moet kopen, laat dit dan afhangen van het seizoen en de gelegenheid. Warmte versterkt namelijk geur. In de zomer, wanneer je huid warm is, kan een zwaar parfum al snel te overheersend en plakkerig aanvoelen. Een lichte, frisse eau de toilette is dan perfect. In de winter is het juist andersom: kou zorgt ervoor dat geuren minder goed vrijkomen en snel wegvallen. In die maanden, en zeker 's avonds tijdens een diner of feestje, komt een rijkere eau de parfum of parfum veel beter tot zijn recht.

Haal alles uit je geur

Heb je eenmaal je keuze gemaakt, dan wil je natuurlijk dat je zo lang mogelijk lekker ruikt. Een veelgemaakte fout is het wrijven van de polsen na het sprayen. Doe dit niet; door de wrijving creëer je warmte die de geurmoleculen kapotmaakt, waardoor vooral de frisse toptonen direct verdwijnen en de geur vlakker wordt.

Daarnaast hecht parfum slecht op een droge huid. Wil je dat je geur echt lang blijft hangen? Smeer je huid dan eerst in met een geurloze bodylotion of een crème uit dezelfde geurlijn voordat je gaat sprayen. De vetten in de crème houden de geurstoffen vast, zodat jij - of je nu kiest voor eau de toilette of parfum - de hele dag heerlijk ruikt.

Geur testen? Begin met een eau de toilette

(want die is het voordeligst)
TypeGeurconcentratieHoudbaarheidGeschikt voor
Parfum20% - 40%8 - 24 uurAvond, speciale gelegenheden
Eau de parfum15% - 20%6 - 8 uurDag en avond
Eau de toilette5% - 15%3 - 5 uurOverdag, warmer weer
▼ Volgende artikel
Review JBL Sense Pro – Oordopjes met oog voor jouw omgeving
© JBL
Huis

Review JBL Sense Pro – Oordopjes met oog voor jouw omgeving

Traditionele oordopjes sluiten luisteraars af van hun omgeving, maar JBL gooit het met zijn nieuwe Sense Pro over een andere boeg. Het minispeakertje van dit zogenoemde open ear-model bevindt zich namelijk pal voor jouw gehoorgang. Met name in het verkeer is dat wel zo veilig, want tijdens het luisteren hoor je óók omgevingsgeluid. We nemen de proef op de som.

Uitstekend
Conclusie

Zoek je in-ears met een goed geluid die jouw oren niet volledig afsluiten van de omgeving? Als je de hoge adviesprijs van 179,99 euro voor lief neemt, bevelen we de JBL Sense Pro van harte aan. Deze oordopjes zitten comfortabel en laten zich eenvoudig bedienen. Bovendien bieden ze ook nog eens een hoge audiokwaliteit en lange accuduur. De Sense Pro is in vijf kleurstellingen te koop.

Plus- en minpunten
  • Zachte flexibele oorhaken
  • Zit comfortabel
  • Lange accuduur
  • Snel opladen in draadloze oplaadcase
  • Gebruiksvriendelijke bediening
  • Spatwaterbestendige behuizing
  • Hoge geluidskwaliteit
  • Equalizerinstellingen aanpassen in app
  • Ruimtelijk geluid via Spatial Sound
  • Duur
  • In-ears kunnen wiebelen
  • Personen in omgeving kunnen meeluisteren
  • Geen oplaadkabel meegeleverd

De JBL Sense Pro is een interessant product voor mensen die reguliere oordopjes niet zo prettig vinden zitten. Je hoeft deze apparaatjes namelijk niet in je oor te proppen. Met behulp van flexibele siliconen oorhaken blijven ze goed op hun plek zitten. Dankzij het zachte materiaal ervaar je tijdens lange luistersessies niet zo gauw irritaties. De Sense Pro zit erg comfortabel in de ronding van je oor. Bedenk wel dat je deze in-ears bij bepaalde activiteiten enigszins voelt wiebelen, bijvoorbeeld wanneer je wild met je hoofd draait of tijdens het sporten. Logisch, want de behuizing zit tenslotte niet klem in jouw gehoorgang. Het is een kwestie van wennen.

©Maikel Dijkhuizen

Je bergt de oordopjes op in dit bijgesloten draadloze oplaaddoosje.

Accu en bediening

Zodra deze bluetooth-oordopjes na enige oefening eenmaal goed op hun plek zitten, kan het luisteren beginnen. Met een luistertijd van ongeveer acht uur op een enkele batterijlading houdt de Sense Pro het lang vol. De inbegrepen oplaadcase bevat een accu met een capaciteit van nog eens dertig uur. Na slechts tien minuten opladen kunnen de oortjes er weer vier uur tegenaan. Kortom, je hebt onderweg of op afgelegen plekken niet zo snel te maken met lege accu's.

De IP54-gecertificeerde behuizing is spatwaterdicht. Laat ze in de regen dus lekker zitten. Het linker- en rechteroordopje bevatten een klein aanraakpaneeltje. Tik eenmaal aan de linkerkant om het volume harder te zetten en tik tweemaal voor een zachter geluid. Je raakt het rechteroordopje aan om muziek te pauzeren en liedjes te skippen. Via het bedieningspaneel beantwoord je ook nog inkomende oproepen. Voor handsfree gesprekken zijn er maar liefst vier microfoons ingebouwd. Al met al werkt de bediening prima, zodat je jouw smartphone in je zak of tas kunt laten zitten.

©Maikel Dijkhuizen

Het langwerpige bedieningspaneel valt aan de buitenzijde nauwelijks op.

Gedetailleerd geluid

Op audiovlak heeft JBL zijn zaakjes goed voor elkaar. De Sense Pro levert een kraakhelder geluid met een hoge detaillering. Zelfs bij het luisteren van bombastische muziekstukken zijn alle instrumenten duidelijk te horen. Met de standaard geluidsinstellingen blijft het basniveau voor muziekgenres als hiphop en dance wel iets achter. Geen probleem, want in de JBL Headphones-app pas je het geluid naar eigen smaak aan. Activeer bijvoorbeeld de equalizerinstelling 'Bass' of zelfs 'Extreme Bass'.

Als je graag naar films en series kijkt, komt de ondersteuning voor ruimtelijk geluid goed van pas. Zet in dat geval de optie 'Spatial Sound' aan en ervaar meer audio-effecten. Een nadeel is dat personen in jouw omgeving het geluid afkomstig van de Sense Pro wellicht kunnen horen. Dat komt door de open constructie van de oordopjes. Overigens geldt dit met name wanneer je het volume hoog hebt staan.

©Maikel Dijkhuizen

Kies in de JBL Headphones-app de gewenste audio-instellingen en bekijk de resterende accucapaciteit.

JBL Sense Pro kopen?

Zoek je in-ears met een goed geluid die jouw oren niet volledig afsluiten van de omgeving? Als je de hoge adviesprijs van 179,99 euro voor lief neemt, bevelen we de JBL Sense Pro van harte aan. Deze oordopjes zitten comfortabel en laten zich eenvoudig bedienen. Bovendien bieden ze ook nog eens een hoge audiokwaliteit en lange accuduur. De Sense Pro is in vijf kleurstellingen te koop.