Détecter les haïkus en Python : un projet poétique et algorithmique

Quand la programmation rencontre la poésie japonaise

Introduction

Le haïku, ce petit poème japonais en trois vers (5-7-5 syllabes), fascine par sa simplicité et sa profondeur. Mais comment détecter automatiquement un haïku dans un texte ? C’est le défi relevé par ce script Python, qui mêle analyse linguistique et créativité algorithmique.

Principe de l’algorithme

  • Comptage des syllabes : Pour chaque mot, on compte les groupes de voyelles (en français, chaque groupe correspond souvent à une syllabe). Le « e » final est ignoré dans la plupart des cas.
  • Analyse des lignes : Le texte est découpé en lignes. L’algorithme parcourt toutes les séquences de trois lignes consécutives.
  • Détection du schéma 5-7-5 : Si la première ligne fait 5 syllabes, la deuxième 7, la troisième 5, alors c’est un haïku !

Exemple de code

import re

def compter_syllabes(mot):
    mot = mot.lower()
    syllabes = len(re.findall(r'[aeiouy]+', mot))
    if mot.endswith('e'):
        syllabes -= 1
    return max(syllabes, 1)

def compter_syllabes_phrase(phrase):
    mots = phrase.split()
    return sum(compter_syllabes(mot) for mot in mots)

def detecter_haiku(texte):
    phrases = texte.split('\n')
    haikus_trouves = []
    for i in range(len(phrases) - 2):
        if (compter_syllabes_phrase(phrases[i]) == 5 and
            compter_syllabes_phrase(phrases[i+1]) == 7 and
            compter_syllabes_phrase(phrases[i+2]) == 5):
            haikus_trouves.append((phrases[i], phrases[i+1], phrases[i+2]))
    return haikus_trouves

Utilisation interactive

  1. L’utilisateur saisit plusieurs lignes de texte (une par ligne).
  2. Le script analyse le texte et affiche tous les haïkus détectés.
Entre ton texte ligne par ligne (laisse une ligne vide pour terminer) :
...
Aucun haïku détecté.

Conclusion

Ce projet montre qu’il est possible de mêler poésie et code, et d’automatiser la détection de structures littéraires. Les limites ? Le comptage des syllabes en français n’est pas parfait, mais l’approche est ludique et éducative. À vous d’essayer, d’améliorer, ou même de générer vos propres haïkus !