J'utilise Ruby pour calculer l'index du brouillard d'argent de certains contenus que j'ai, je peux implémenter avec succès l'algorithme décrit ici:
J'utilise la méthode ci-dessous pour compter le nombre de syllabes dans chaque mot: p> Il ramasse parfois des mots avec seulement 2 syllabes comme ayant 3 syllabes. Quelqu'un peut-il donner des conseils ou est conscient d'une meilleure méthode? P> "eux-mêmes" est compté comme 3 mais il est seulement 2 p> p>
4 Réponses :
Pour commencer, il semble que vous devriez décrémenter len pour les suffixes qui doivent être exclus.
len-=1 if /.*[ing,es,ed]$/.match(word)
Oui, j'ai eu la fonction de là, semble être la seule méthode qui se rapproche.
La fonction que je vous donne précédemment est basée sur ces règles simples décrites ici :
Chaque voyelle (A, E, I, O, U, Y) dans un Le mot compte comme une syllabe soumise à Les sous-règles suivantes: p>
- ignore final -es, -ed, -e (sauf pour -le) li>
- mots de trois lettres ou moins compte comme une syllabe li>
- Les voyelles consécutives comptent comme une syllabe. li> ul> BlockQuote>
Voici le code: P>
logorrhoea: 3 4 used: 2 1 makes: 2 1 themselves: 3 2
Le problème avec simplement en supposant que tous les mots de trois lettres sont monosyllabiques est qu'il attrape des mots comme "l'aide" mais manque des mots comme "ion". L'algorithme peut être amélioré en leur enseignant les diphtongues, c'est-à-dire que les grappes à deux syllabes sont prononcées comme une.
Pour ce que fait l'OP, cependant, il est probablement inutile. Combien de mots de trois lettres, trois syllabes sont susceptibles d'être rencontrés? Tout va être une heuristique, l'objectif est de trouver un algorithme assez proche sans être trop intensif dans le codage ou le temps de fonctionnement.
Existe-t-il une simple modification de celle-ci qui pourrait gérer des cas tels que "Jukebox" et "Onway" (tous deux de retour 3 avec votre méthode)?
Une chose que vous devriez faire est d'enseigner à votre algorithme sur Vous pouvez également ajouter "ES" et similaires à vos terminaisons spéciales (vous avez déjà "ING") et ne le comptez tout simplement pas comme une syllabe, mais cela pourrait encore entraîner des mauvaises lacunes. P>
Enfin, pour une meilleure précision, vous devez convertir votre contribution en un schéma d'orthographe ou un alphabet qui a une relation définie avec la prononciation du mot. Avec votre exemple "eux-mêmes", l'algorithme n'a pas de moyen fiable de savoir que "E" "VES" est supprimé. Toutefois, si vous avez répondu à "Themselvz", ou enseigné l'algorithme le
Il y a aussi un rubygem appelé Odyssey qui calcule le brouillard du gunning, avec certaines des autres personnes populaires (Flasch-kincaid, smog, etc.) P>
Pouvez-vous poster les données de test qui donnent de mauvais résultats ..