ChatGPT - Sage - Poe - Les programmeurs pas [encore] en danger

poe.com, un [bon?!] moyen de tester ChatGPT sans numéro de téléphone, en ne donnant qu'une adresse email, éventuellement jetable.

Je me suis dit, tiens, si je testais avec la génération d'un bout de code ?

Par manque de temps comme par curiosité, je lui ai soumis un truc qui me trotte dans la tête : la séparation des mots espagnols en syllabes (beaucoup moins simple qu'il n'y paraît à priori )

Ben je crois que j'ai cassé chatGPT... Je lui prompte:

crée une fonction php efficace permettant de séparer les mots espagnols en syllabes

Après quelques bouts de code qui pouvait sembler fonctionnels, la découpe ne se faisait jamais correctement.

Je lui fournis un mot ne fonctionnant pas, une explication du problème et lui demande de corriger:

cette fonction a des problèmes de caractères unicode, teste-le avec le mot español et recommence

En affinant et en redemandant de tester avec certains mots, l'appli me propose de nouvelles modifs mais aucune n'est fonctionnelle, contrairement à ce qu'affirme le chatbot: il me dit que la fonction découpe correctement les mots demandés... Donc soit elle ment soit elle ne teste pas le code (LOL)

Je lui demande donc de recommencer et c'est là qu'on rigole:

ça ne fonctionne toujours pas: ton code ne sépare pas bien les syllabes et il le fait dans le désordre (les syllabes ne sont pas dans l'ordre du mot) recommence

On voit que le bouzin part dans une sorte de boucle générative assez drôle, mélangeant les portions de code avec ses propres commentaires, répétés et entrecoupés...

function syllabifier($word) {
  $syllable_patterns = array(
    '/(qui|gue|gui|[aeiouáéíóúü])[aeiouáéíóúü]*|[bcdfghjklmnpqrstvwxyzñ]+/i',
    '/(que|qe|qui|qüe)[aeiouáéíóúü]*/i',
    '/(gui|güi)[aeiouáéíóúü]*/i'
  );

  $syllables = array();
  preg_match_all('/./u', $word, $matches);
  $characters = $matches[0];

  while (!empty($characters)) {
    $matched = false;
    foreach ($syllable_patterns as $pattern) {
      $syllable = '';
      foreach ($characters as $key => $char) {
        $syllable .= $char;
        if (preg_match($pattern, $syllable)) {
          $syllables[] = $syllable;
          $matched = true;
          $charactersJe suis désolé que la fonction ne fonctionne toujours pas pour vous. Je vais essayer de proposer une nouvelle version de la fonction qui prend en compte les cas particuliers de la langue espagnole et qui retourne les syllabes dans l'ordre du mot. Voici la fonction modifiée :

```php
function syllabifier($word) {
  $syllable_patterns = array(
    '/(qui|gue|gui|[aeiouáéíóúü])[aeiouáéíóúü]*|[bcdfghjklmnpqrstvwxyzñ]+/i',
    '/(que|qe|qui|qüe)[aeiouáéíóúü]*/i',
    '/(gui|güi)[aeiouáéíóúü]*/i'
  );

  $syllables = array();
  preg_match_all('/./u', $word, $matches);
  $characters = $matches[0];

  while (!empty($characters)) {
    $matched = false;
    foreach ($syllable_patterns as $pattern) {
      $syllable = '';
      foreach ($characters as $key => $char) {
        $syllable .= $char;
        if (preg_match($pattern, $syllable)) {
          $syllables[] = $syllable;
          $matched = true;
          $charactersJe m'excuse pour cette erreur dans ma réponse précédente. Voici la version corrigée de la fonction :

```php
function syllabifier($word) {
  $syllable_patterns = array(
    '/(ll|[aeiouáéíóúü])[aeiouáéíóúü]*|[bcdfghjklmnpqrstvwxyzñ]+/i',
    '/(que|qe|qui|qüe)[aeiouáéíóúü]*/i',
    '/(gui|güi)[aeiouáéíóúü]*/i'
  );

  $syllables = array();
  preg_match_all('/./u', $word, $matches);
  $characters = $matches[0];

  while (!empty($characters)) {
    $matched = false;
    foreach ($syllable_patterns as $pattern) {
      $syllable = '';
      foreach ($characters as $key => $char) {
        $syllable .= $char;
        if (preg_match($pattern, $syllable)) {
          $syllables[] = $syllable;
          $matched = true;
          $characters = array_slice($characters, $key + 1);
          break;
        }
      }
      if ($matched) {
        break;
      }
    }
    if (!$matched) {
      $syllables[] = $charactersJe m'excuse pour cette erreur dans ma réponse précédente. Voici la version corrigée de la fonction :

```php
function syllabifier($word) {
  $syllable_patterns = array(
    '/(ll|[aeiouáéíóúü])[aeiouáéíóúü]*|[bcdfghjklmnpqrstvwxyzñ]+/i',
    '/(que|qe|qui|qüe)[aeiouáéíóúü]*/i',
    '/(gui|güi)[aeiouáéíóúü]*/i'
  );

  $syllables = array();
  preg_match_all('/./u', $word, $matches);
  $characters = $matches[0];

  while (!empty($characters)) {
    $matched = false;
    foreach ($syllable_patterns as $pattern) {
      $syllable = '';
      foreach ($characters as $key => $char) {
        $syllable .= $char;
        if (preg_match($pattern, $syllable)) {
          $syllables[] = $syllable;
          $matched = true;
          $characters = array_slice($characters, $key + 1);
          break;
        }
      }
      if ($matched) {
        break;
      }
    }
    if (!$matched) {
      $syllables[] = $charactersJe suis désolé pour cette confusion. Voici une nouvelle version de la fonction qui devrait fonctionner correctement pour le mot "español" et qui retourne les syllabes dans l'ordre du mot :

```php
function syllabifier($word) {
  $syllable_patterns = array(
    '/(que|qui|gue|gui|güe|güi|[aeiouáéíóúü])[aeiouáéíóúü]*|[bcdfghjklmnpqrstvwxyzñ]+/i',
    '/(que|qe|qui|qüe)[aeiouáééóúí]+/i',
    '/(gui|güi)[aeiouáéíóúü]+/i'
  );

  $syllables = array();
  preg_match_all('/./u', $word, $matches);
  $characters = $matches[0];

  while (!empty($characters)) {
    $matched = false;
    foreach ($syllable_patterns as $pattern) {
      $syllable = '';
      foreach ($characters as $key => $char) {
        $
Vous voulez en finir rapidement   avec les «IA» ?!
Laissez-les se reprogrammer   toutes seules...  Y'en a pour une grosse matinée.

✍ Écrire un commentaire

les commentaires relevant du SPAM seront filtrés et dégagés direct...

Quelle est le deuxième caractère du mot whe2s3 ?