Vous n'êtes pas identifié(e).
Bonjour
Tout est dans le titre (ou presque) : je recherche un script, un algorithme ou un bout de code mettant en oeuvre de manière "assez" fiable le décompte de syllabes pour la langue française.
À ce jour j'ai trouvé des trucs, mais uniquement pour l'anglais...
Merci
effiSpin, c'est moi ;-)
🔴 Hors ligne
j'ai rien la dessus, je réflechit comment faire cela en algorythmie, mais ca me parait un peu complexe.
une syllabe, généralement, c'est une consone + une voyelle , techniquement non ?
⌕ Comment Ranker ?
▶ Nouveauté : Ninja Web Pro Pack copies limitées !
▶ Ebook : Ninjalinking 2022 (-25% : labo25e)
▶ Conseils stratégiques ou techniques ? ( Skype : jaffaarbh )
🟢 En ligne
🔴 Hors ligne
Bon j'ai trouvé quelque chose mais en Delphi, pas fiable à 100%... C'est cependant suffisant pour "mesurer" (à la louche) certains critères sur un texte
effiSpin, c'est moi ;-)
🔴 Hors ligne
Je pense que ca peut se faire, en posant dessus un peu sur des mots particuliers :
brun
brune
queue
oeuf
Ensuite faut faire des patterns :
Pour une syllabe S, une Voyelle V et une consonne C
S = suite de C + suite de V (ex : bru,queue)
ou
S= suite de C + suite de V +suite de C (ex:brun) (mais pas de V derrière sinon ca en fait 2, ex : brune)
ou
S= suite de V + suite de C (ex:oeuf)
etc. etc.
Sans compter qu'il faut gérrer les cas spéciaux, comme le "rium" de "aquarium" peut être en faisant une liste de mot grec...
C'est posé en 5 min, j;ai pas vraiment réfléchi posement dessus, peut-être même que ca marche pas du tout ^^
En tout cas ca fait du taff, même si t'as déjà trouvé, je post un début de piste pour ceux qui plancherais dessus un jour, peut–être moi qui sait
Dernière modification par cyex (2013-09-16 16:50:15)
🔴 Hors ligne
Lorsque qu'une consonne est précédée et suivi d'une voyelle, la syllabe commence à la consonne.
(lorsqu'on trouve vcv, alors on sépare v/cv et on obtient 2 syllabes)
Exemple :
Sans = cvcc = on ne trouve pas le vcv, il n'y a qu'une syllabe
aquarium = vcvvcvvc = v/cvv/cvvc =a/qua/rium
ça ne marche pas tout le temps, il y a les doubles consonnes, etc. mais il faut peut etre fouiller là dedans...
🔴 Hors ligne
Merci pour vos analyses
Vais tâcher d'adapter le bout de code Delphi que j'ai trouvé, je le partagerai. En fait j'aimerais implémenter l'algorithme de Gunning Fog pour mesurer la complexité d'un texte, et il me faut donc décompter impérativement le nombre de syllabes. C'est un indicateur je pense assez intéressant (un parmi tant d'autres me direz-vous) quand on travaille sur la génération de contenus
effiSpin, c'est moi ;-)
🔴 Hors ligne
aquarium = vcvvcvvc = v/cvv/cvvc =a/qua/rium
J'avais noté aquarium par ce que justement c'est une exception, soit : a/qua/ri/um
Sinon merci pour Gunning fog je ne connaissais pas. D'ailleurs en cherchant j'ai trouvé encore plus d'indices à chercher : http://www.mancko.com/tests-de-lisibilite/fr/
Il y en a du boulot
🔴 Hors ligne
aquarium = vcvvcvvc = v/cvv/cvvc =a/qua/rium
en arabe : si le mot aquarium, par exemple était, lu en phonétque pour un mot d'alphabet arabe,
je dirais qu'il est de 3 consonance (comme la majorité des mots en arabe)
A (avec une alif sous entendu avec la voyelle a)
qua (avec Qaf et la voyelle ou)
Rium (avec Ra et la voyelle y)
la consone a la fin n'est pas constituelle. en arabe. en francais elle n'est pas suivi de voyelle et ce n'est pas un syllabe
Donc En arabe 3 consone : Alif, Qaf et Ra et des voyelles. on a bien 3 syllabes sur a-qua-rium ?
Le Alif (la premiere est implicite ou invisible mais existe , alif etant justement la consonne invisible ) pour produire en son une simple voyelle. en son = syllabe ?
aquarium = vcvvcvvc = v/cvv/cvvc =a/qua/rium
- en début de mot une voyelle = une syllabe (V)
- une consonne suivie d'une voyelle (excepté en fin de mots) = syllabe (CV)
a partir de ces deux variable a et b on peux déduire un algorythme de reconaissance je pense ...
a tester sur d'autres mots
⌕ Comment Ranker ?
▶ Nouveauté : Ninja Web Pro Pack copies limitées !
▶ Ebook : Ninjalinking 2022 (-25% : labo25e)
▶ Conseils stratégiques ou techniques ? ( Skype : jaffaarbh )
🟢 En ligne
lu en phonétque
A on avis pour mesurer la complexité d'un texte ecrit, il vaudrait mieux prendre le découpage des syllables écrites (je crois qu'en français on peut compter des deux façons écrite/orale).
Après une recherche de 5 min sur internet, j'ai trouvé les combinaisons possibles
Soit V une voyelle ou groupe de voyelles (voyelle + semi-voyelle) :
V
VC
CV
VCC
CCV
CVC
VCCC
CCCV
CCVC
CCVCC
CCCVC
CCCVCC
CCVCCC
Bien sur il à toujours des cas particuliers, mais vu qu'ils sont rares ca doit suffire pour servir de mesure
Dernière modification par cyex (2013-09-17 17:28:42)
🔴 Hors ligne
il suffit peu etre simplement de relever les V en début de mot une voyelle = une syllabe (V)
et les consonne suivie d'une voyelle (excepté en fin de mots) = syllabe (CV)
et je crois que ces deux "types" avec leur conditions (début de mots, et excepté en fin de mots respectivement) remplacent cette liste non ?
⌕ Comment Ranker ?
▶ Nouveauté : Ninja Web Pro Pack copies limitées !
▶ Ebook : Ninjalinking 2022 (-25% : labo25e)
▶ Conseils stratégiques ou techniques ? ( Skype : jaffaarbh )
🟢 En ligne
Apres, ca dépend ce qu'on entend par syllabe.
les règles qu'on utilise pour découper les mots ne sont pas les mêmes que celles pour compter les pieds ds un poème.
Et la problématique du i s'illustre. Dans un cas, le i n'est pas considéré comme une voyelle, dans l'autre si.
mais en général, il y a autant de syllabe que de voyelle.
🔴 Hors ligne
et je crois que ces deux "types" avec leur conditions (début de mots, et excepté en fin de mots respectivement) remplacent cette liste non ?
Oui c'est juste qu'a partir de la liste on en déduire un truc logique simple :
mais en général, il y a autant de syllabe que de voyelle.
Ou que de groupe de voyelle (voyelle + semi voyelle)
C'est effectivement le plus simple et rapide à mettre en oeuvre pour un calcul rapide.
<strike>N'oublie pas de mettre [résolu] dans le sujet de l'article !</strike>
🔴 Hors ligne
Bonjour
Bon pour la forme je vous donne le code (en Delphi, je l'ai pas encore adapté...) du truc que j'ai trouvé :
Si quelqu'un connait un convertisseur auto (comme Econ Netvert GUI, que j'utilise pour la traduction automatique C# / VB.Net - fonctionne super bien à 95% car utilise la réflexion autorisée par le framework .Net) ça m'évitera de me prendre le chou avec un langage que j'ai pas touché depuis 20 ans (j'ai débuté la programmation avec le turbo pascal sous DOS... Après être passé par le Basic dès l'âge de 8 ans sur un ZX Spectrum 81, doté d'une imposante extension mémoire de 16 Ko : ça me rajeunit pas ces conneries )
effiSpin, c'est moi ;-)
🔴 Hors ligne
🔴 Hors ligne
c'est moi
⌕ Comment Ranker ?
▶ Nouveauté : Ninja Web Pro Pack copies limitées !
▶ Ebook : Ninjalinking 2022 (-25% : labo25e)
▶ Conseils stratégiques ou techniques ? ( Skype : jaffaarbh )
🟢 En ligne
aller, je code un truc à l'arrache...
skype: davidcz1
Service de backorders de domaines
Le PBN par prnator
🔴 Hors ligne
voici un début (ça ne fonctionne pas parfaitement)
Je ne me suis pas servi de l'algo...
$mot = strtolower(htmlentities ($_GET["mot"]));
$mot = strtok ($mot,"");
$voyelles = array ("a","e","i","o","u","y");
$cvcv = "";
$moins = 0;
for ($i=0;$i<strlen ($mot)-1;$i++) {
if (in_array($mot[$i],$voyelles)) {$cvcv .="v";} else {$cvcv .="c";}
}
$cvcv = $cvcv." ";
$cvcv = str_replace ("vv","v",$cvcv);
$cvcv = str_replace ("vv","v",$cvcv);
$cvcv = str_replace ("vv","v",$cvcv);
$cvcv = str_replace ("cc","c",$cvcv);
$cvcv = str_replace ("cc","c",$cvcv);
$cvcv = str_replace ("cc","c",$cvcv);
$cvcv = str_replace ("c ","",$cvcv);
$cvcv = str_replace (" ","",$cvcv);
$nbsyllabes1 = count (explode ("cv",$cvcv));
$nbsyllabes2 = count (explode ("vc",$cvcv));
$nbsyllabes = min ($nbsyllabes1,$nbsyllabes2);
$nbsyllabes = $nbsyllabes - $moins;
echo $mot." --> ".$nbsyllabes;//." ".$nbsyllabes1." ".$nbsyllabes2." ".$cvcv;
?>
skype: davidcz1
Service de backorders de domaines
Le PBN par prnator
🔴 Hors ligne