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
- L’utilisateur saisit plusieurs lignes de texte (une par ligne).
- 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 !