[HELP] Ai besoin d'un compteur de mots vraiment "précis"...
8 réponses
Pierre
Bonjour,
(Précision : je m'y connais peu en javascript)
J'ai besoin pour mon site d'un script permettant de compter les mots. J'en
ai même trouvé plusieurs mais ils ont tous (pour moi !) leurs
inconvénients :
Le premier est mon préféré, car il affiche le nombre de mots au fur et à
mesure que le visiteur tape ses mots dans un champ de saisie.
Cependant il souffre d'un défaut qui peut sembler mineur (mais que je dois
dans le cas spécifique de mon site absolument éviter), il donne un nombre
de mots différent de celui donné par la fonction statistique de Word et
Open Office : par exemple, pour un texte de 890 mots d'après ces 2
traitements de texte, le script en trouve 948...
Je ne sais pas à quoi tient cette différence, en tout cas, avec un autre
texte test ne contenant que des chiffres et des caractères en minuscule et
non accentués (donc pas de tirets, apostrophes, ç, etc.), le "bon"
résultat est donné à la fois par les traitements de texte et par le
script. Il doit donc y avoir un rapport ??
Voici ce 1er script :
<script type="text/javascript">
function Compter(chaine, formulaire) {
var exp=new RegExp("[a-zA-Z0-9éèêëàáâäóòôöíìîïçÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÇ-]+","g");
var tabNom=chaine.match(exp);
if (tabNom==null) {formulaire.compte.value = " 0";}
else if (tabNom.length==1)
{
var affichage=" " + tabNom.length + " mot";
formulaire.compte.value = affichage;
}
else
{
var affichage=" " + tabNom.length + " mots.";
formulaire.compte.value = affichage;
}
}
</script>
J'ai tenté "pour voir" de remplacer la ligne var exp=new etc.
par
var exp=new
RegExp("[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ-]+","g");
mais cela n'a rien changé (et je ne comprends pas comment fontionne ce
script...)
Pour ce qui est du second script, il donne quant à lui le même résultat
que la fonction statistique des traitements de texte, mais d'une part il
est moins compact, et surtout il affiche le résultat uniquement quand le
visiteur clique sur un bouton "Calculer les mots". Je tiens à ce que mon
visiteur n'ait pas besoin de cliquer sur ce bouton et que le résultat
s'affiche "au fur et à mesure" de la frappe, mais je n'arrive pas à
changer cela... Voici ce deuxième script :
<body>
<<br>
<SCRIPT language="JavaScript" title="G1SCRIPT">
//Script Généré sur le Site http://www.G1SCRIPT.COM
Quant au 3ème script que j'ai trouvé il cumule pour moi les inconvénients
car il donne un résultat encore plus éloigné de celui donné par les
traitements de texte (plus de 1 000 mots au lieu de 890), et de plus il
oblige le visiteur à cliquer sur un bouton...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Olivier Miakinen
[...] il souffre d'un défaut qui peut sembler mineur (mais que je dois dans le cas spécifique de mon site absolument éviter), il donne un nombre de mots différent de celui donné par la fonction statistique de Word et Open Office : par exemple, pour un texte de 890 mots d'après ces 2 traitements de texte, le script en trouve 948...
Ce ne serait pas par hasard la fonction de Word et Open Office qui serait incorrecte ?
Je ne sais pas à quoi tient cette différence, en tout cas, avec un autre texte test ne contenant que des chiffres et des caractères en minuscule et non accentués (donc pas de tirets, apostrophes, ç, etc.), le "bon" résultat est donné à la fois par les traitements de texte et par le script. Il doit donc y avoir un rapport ??
Oui. Essaye avec les phrases « c'est l'été aujourd'hui » et « c'était l'été avant-hier ». Si Word trouve 5 mots dans les deux cas, il doit utiliser un dictionnaire pour savoir que « c'est » compte pour deux mots et « aujourd'hui » pour un seul. S'il trouve 6 et 5 mots, c'est moins bien. S'il n'en trouve que 3, ce n'est pas terrible.
Voici ce 1er script : var exp=new RegExp("[a-zA-Z0-9éèêëàáâäóòôöíìîïçÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÇ-]+","g");
Simple et de bon goût. On peut l'améliorer :
J'ai tenté "pour voir" de remplacer la ligne var exp=new etc. par var exp=new RegExp("[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ-]+","g");
Oui, c'est mieux, sauf le « - » que tu as mis entre « 9 » et « é ». Il vaut mieux le laisser à une extrémité, d'ailleurs il y est déjà (après le ¾).
mais cela n'a rien changé (et je ne comprends pas comment fontionne ce script...)
Une expression rationnelle cherche toutes les suites ininterrompues des caractères contenus entre les crochets, puis compte le nombre de suites trouvées.
Si Word avait compté 3 pour mes deux phrases de tests, j'imagine que rajouter une apostrophe dans le test a des chances de retourner le même résultat : "[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+"
[...] il souffre d'un défaut qui peut sembler mineur (mais que je dois
dans le cas spécifique de mon site absolument éviter), il donne un nombre
de mots différent de celui donné par la fonction statistique de Word et
Open Office : par exemple, pour un texte de 890 mots d'après ces 2
traitements de texte, le script en trouve 948...
Ce ne serait pas par hasard la fonction de Word et Open Office qui
serait incorrecte ?
Je ne sais pas à quoi tient cette différence, en tout cas, avec un autre
texte test ne contenant que des chiffres et des caractères en minuscule et
non accentués (donc pas de tirets, apostrophes, ç, etc.), le "bon"
résultat est donné à la fois par les traitements de texte et par le
script. Il doit donc y avoir un rapport ??
Oui. Essaye avec les phrases « c'est l'été aujourd'hui » et « c'était
l'été avant-hier ». Si Word trouve 5 mots dans les deux cas, il doit
utiliser un dictionnaire pour savoir que « c'est » compte pour deux
mots et « aujourd'hui » pour un seul. S'il trouve 6 et 5 mots, c'est
moins bien. S'il n'en trouve que 3, ce n'est pas terrible.
Voici ce 1er script :
var exp=new RegExp("[a-zA-Z0-9éèêëàáâäóòôöíìîïçÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÇ-]+","g");
Simple et de bon goût. On peut l'améliorer :
J'ai tenté "pour voir" de remplacer la ligne var exp=new etc.
par
var exp=new
RegExp("[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ-]+","g");
Oui, c'est mieux, sauf le « - » que tu as mis entre « 9 » et « é ». Il
vaut mieux le laisser à une extrémité, d'ailleurs il y est déjà (après
le ¾).
mais cela n'a rien changé (et je ne comprends pas comment fontionne ce
script...)
Une expression rationnelle cherche toutes les suites ininterrompues des
caractères contenus entre les crochets, puis compte le nombre de suites
trouvées.
Si Word avait compté 3 pour mes deux phrases de tests, j'imagine que
rajouter une apostrophe dans le test a des chances de retourner le même
résultat :
"[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+"
[...] il souffre d'un défaut qui peut sembler mineur (mais que je dois dans le cas spécifique de mon site absolument éviter), il donne un nombre de mots différent de celui donné par la fonction statistique de Word et Open Office : par exemple, pour un texte de 890 mots d'après ces 2 traitements de texte, le script en trouve 948...
Ce ne serait pas par hasard la fonction de Word et Open Office qui serait incorrecte ?
Je ne sais pas à quoi tient cette différence, en tout cas, avec un autre texte test ne contenant que des chiffres et des caractères en minuscule et non accentués (donc pas de tirets, apostrophes, ç, etc.), le "bon" résultat est donné à la fois par les traitements de texte et par le script. Il doit donc y avoir un rapport ??
Oui. Essaye avec les phrases « c'est l'été aujourd'hui » et « c'était l'été avant-hier ». Si Word trouve 5 mots dans les deux cas, il doit utiliser un dictionnaire pour savoir que « c'est » compte pour deux mots et « aujourd'hui » pour un seul. S'il trouve 6 et 5 mots, c'est moins bien. S'il n'en trouve que 3, ce n'est pas terrible.
Voici ce 1er script : var exp=new RegExp("[a-zA-Z0-9éèêëàáâäóòôöíìîïçÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÇ-]+","g");
Simple et de bon goût. On peut l'améliorer :
J'ai tenté "pour voir" de remplacer la ligne var exp=new etc. par var exp=new RegExp("[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ-]+","g");
Oui, c'est mieux, sauf le « - » que tu as mis entre « 9 » et « é ». Il vaut mieux le laisser à une extrémité, d'ailleurs il y est déjà (après le ¾).
mais cela n'a rien changé (et je ne comprends pas comment fontionne ce script...)
Une expression rationnelle cherche toutes les suites ininterrompues des caractères contenus entre les crochets, puis compte le nombre de suites trouvées.
Si Word avait compté 3 pour mes deux phrases de tests, j'imagine que rajouter une apostrophe dans le test a des chances de retourner le même résultat : "[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+"
Pierre
Merci Olivier pour ton aide. Malheureusement ton message a été tronqué, il se termine ainsi :
Si Word avait compté 3 pour mes deux phrases de tests, j'imagine que rajouter une apostrophe dans le test a des chances de retourner le même résultat : "[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+"
J'ai essayé de modifier la formule du 1er script ainsi :
var exp=new RegExp("[a-zA-Z0-9éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+","g");
(en rajoutant l'apostrophe donc), et le résultat est toujours "faux", càd de 948 mots alors que Word trouve 890. Je m'étais moi aussi posé la question de savoir si ce n'étaient pas plutôt les fonctions statistiques de Word et Open Office qui se trompaient mais je n'avais pas vérifié comme tu le suggérais...
Voici les résultats :
c'est l'été aujourd'hui --> Word 3 mots / 1er script (sans ') 6 mots / 1er script (avec ') 3 mots / En réalité : 5 c'était l'été avant-hier --> Word 3 mots / 1er script (sans ') 5 mots / 1er script (avec ') 3 mots / En réalité : 5
Ainsi, le 1er script d'origine, sans l'apostrophe, semble plus exact (il faudrait juste qu'il gère spécifiquement le mot "aujourd'hui", et les mots "prud'homie / prud'homal / prud'homale / prud'homaux / prud'homme / prud'hommes), je crois (?) qu'il n'y a pas d'autres mots contenant d'apostrophe en français que l'on doive considérer comme constituant un seul mot (et gérer les noms propres avec apostrophe serait inutile), mais enfin traiter ces quelques cas spécifiques dans le comptage des mots est un luxe dont je peux me passer...)
Au départ cette mauvaise concordance avec Word et Open Office me posait vraiment problème, car je voulais absolument que mon script affiche un résultat identique aux traitements de texte (mon travail étant tarifé au nombre de mots, si mon client veut contrôler avec Word par exemple il va penser que je l'escroque...). Finalement je vais peut-être mettre sur mon site un message explicatif pour prouver que le script est plus proche de la vérité que les fonctions statistiques des traitements de texte...
J'espère que tu reposteras ton message pour que je le lise en totalité, en tout cas merci de nouveau !
-- Pierre
Merci Olivier pour ton aide. Malheureusement ton message a été tronqué, il
se termine ainsi :
Si Word avait compté 3 pour mes deux phrases de tests, j'imagine que
rajouter une apostrophe dans le test a des chances de retourner le même
résultat :
"[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+"
J'ai essayé de modifier la formule du 1er script ainsi :
var exp=new
RegExp("[a-zA-Z0-9éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+","g");
(en rajoutant l'apostrophe donc), et le résultat est toujours "faux", càd
de 948 mots alors que Word trouve 890. Je m'étais moi aussi posé la
question de savoir si ce n'étaient pas plutôt les fonctions statistiques
de Word et Open Office qui se trompaient mais je n'avais pas vérifié comme
tu le suggérais...
Voici les résultats :
c'est l'été aujourd'hui --> Word 3 mots / 1er script (sans ') 6 mots /
1er script (avec ') 3 mots / En réalité : 5
c'était l'été avant-hier --> Word 3 mots / 1er script (sans ') 5 mots /
1er script (avec ') 3 mots / En réalité : 5
Ainsi, le 1er script d'origine, sans l'apostrophe, semble plus exact (il
faudrait juste qu'il gère spécifiquement le mot "aujourd'hui", et les mots
"prud'homie / prud'homal / prud'homale / prud'homaux / prud'homme /
prud'hommes), je crois (?) qu'il n'y a pas d'autres mots contenant
d'apostrophe en français que l'on doive considérer comme constituant un
seul mot (et gérer les noms propres avec apostrophe serait inutile), mais
enfin traiter ces quelques cas spécifiques dans le comptage des mots est
un luxe dont je peux me passer...)
Au départ cette mauvaise concordance avec Word et Open Office me posait
vraiment problème, car je voulais absolument que mon script affiche un
résultat identique aux traitements de texte (mon travail étant tarifé au
nombre de mots, si mon client veut contrôler avec Word par exemple il va
penser que je l'escroque...). Finalement je vais peut-être mettre sur mon
site un message explicatif pour prouver que le script est plus proche de
la vérité que les fonctions statistiques des traitements de texte...
J'espère que tu reposteras ton message pour que je le lise en totalité, en
tout cas merci de nouveau !
Merci Olivier pour ton aide. Malheureusement ton message a été tronqué, il se termine ainsi :
Si Word avait compté 3 pour mes deux phrases de tests, j'imagine que rajouter une apostrophe dans le test a des chances de retourner le même résultat : "[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+"
J'ai essayé de modifier la formule du 1er script ainsi :
var exp=new RegExp("[a-zA-Z0-9éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+","g");
(en rajoutant l'apostrophe donc), et le résultat est toujours "faux", càd de 948 mots alors que Word trouve 890. Je m'étais moi aussi posé la question de savoir si ce n'étaient pas plutôt les fonctions statistiques de Word et Open Office qui se trompaient mais je n'avais pas vérifié comme tu le suggérais...
Voici les résultats :
c'est l'été aujourd'hui --> Word 3 mots / 1er script (sans ') 6 mots / 1er script (avec ') 3 mots / En réalité : 5 c'était l'été avant-hier --> Word 3 mots / 1er script (sans ') 5 mots / 1er script (avec ') 3 mots / En réalité : 5
Ainsi, le 1er script d'origine, sans l'apostrophe, semble plus exact (il faudrait juste qu'il gère spécifiquement le mot "aujourd'hui", et les mots "prud'homie / prud'homal / prud'homale / prud'homaux / prud'homme / prud'hommes), je crois (?) qu'il n'y a pas d'autres mots contenant d'apostrophe en français que l'on doive considérer comme constituant un seul mot (et gérer les noms propres avec apostrophe serait inutile), mais enfin traiter ces quelques cas spécifiques dans le comptage des mots est un luxe dont je peux me passer...)
Au départ cette mauvaise concordance avec Word et Open Office me posait vraiment problème, car je voulais absolument que mon script affiche un résultat identique aux traitements de texte (mon travail étant tarifé au nombre de mots, si mon client veut contrôler avec Word par exemple il va penser que je l'escroque...). Finalement je vais peut-être mettre sur mon site un message explicatif pour prouver que le script est plus proche de la vérité que les fonctions statistiques des traitements de texte...
J'espère que tu reposteras ton message pour que je le lise en totalité, en tout cas merci de nouveau !
-- Pierre
SAM
Voici les résultats :
c'est l'été aujourd'hui --> Word 3 mots / 1er script (sans ') 6 mots / 1er script (avec ') 3 mots / En réalité : 5 c'était l'été avant-hier --> Word 3 mots / 1er script (sans ') 5 mots / 1er script (avec ') 3 mots / En réalité : 5
Je comprends que pour toi : l'été est constitué de 2 mots ?
Essaie ceci (comptage auto méthode Word) :
<html> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> function countit(monform,methode){ var contenu = monform.texteur.value; var exp; if(methode) // comptage perso exp = new RegExp("[., ;:nr'-]+","g"); else // comptage Word exp = new RegExp("[., ;:nr]+","g"); contenu = contenu.split(exp); monform.verif.value = contenu; // pour vérifier les mots monform.compteur.value = contenu[contenu.length-1]==''? contenu.length-1 : contenu.length; } </script> <form method="post" name="wordcount" onsubmit="return false;"> <p>entrez votre texte : <textarea name="texteur" onkeyup="countit(this.form)" rows="12" cols="60" wrap="virtual"> c'était l'été avant-hier.
et on n'est pas dimanche; ce soir , mais on le sera demain
qui compte juste même si on a fait des fautes de frappe dans les espacements et ponctuations.
Voici les résultats :
c'est l'été aujourd'hui --> Word 3 mots / 1er script (sans ') 6 mots /
1er script (avec ') 3 mots / En réalité : 5
c'était l'été avant-hier --> Word 3 mots / 1er script (sans ') 5 mots /
1er script (avec ') 3 mots / En réalité : 5
Je comprends que pour toi : l'été est constitué de 2 mots ?
Essaie ceci (comptage auto méthode Word) :
<html>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function countit(monform,methode){
var contenu = monform.texteur.value;
var exp;
if(methode) // comptage perso
exp = new RegExp("[., ;:nr'-]+","g");
else // comptage Word
exp = new RegExp("[., ;:nr]+","g");
contenu = contenu.split(exp);
monform.verif.value = contenu; // pour vérifier les mots
monform.compteur.value = contenu[contenu.length-1]==''?
contenu.length-1 : contenu.length;
}
</script>
<form method="post" name="wordcount" onsubmit="return false;">
<p>entrez votre texte :
<textarea name="texteur" onkeyup="countit(this.form)"
rows="12" cols="60" wrap="virtual">
c'était l'été avant-hier.
et on n'est pas dimanche; ce soir , mais
on le sera demain
c'est l'été aujourd'hui --> Word 3 mots / 1er script (sans ') 6 mots / 1er script (avec ') 3 mots / En réalité : 5 c'était l'été avant-hier --> Word 3 mots / 1er script (sans ') 5 mots / 1er script (avec ') 3 mots / En réalité : 5
Je comprends que pour toi : l'été est constitué de 2 mots ?
Essaie ceci (comptage auto méthode Word) :
<html> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <script type="text/javascript"> function countit(monform,methode){ var contenu = monform.texteur.value; var exp; if(methode) // comptage perso exp = new RegExp("[., ;:nr'-]+","g"); else // comptage Word exp = new RegExp("[., ;:nr]+","g"); contenu = contenu.split(exp); monform.verif.value = contenu; // pour vérifier les mots monform.compteur.value = contenu[contenu.length-1]==''? contenu.length-1 : contenu.length; } </script> <form method="post" name="wordcount" onsubmit="return false;"> <p>entrez votre texte : <textarea name="texteur" onkeyup="countit(this.form)" rows="12" cols="60" wrap="virtual"> c'était l'été avant-hier.
et on n'est pas dimanche; ce soir , mais on le sera demain
qui compte juste même si on a fait des fautes de frappe dans les espacements et ponctuations.
newdb
Pierre wrote:
il faudrait juste qu'il gère spécifiquement le mot "aujourd'hui", et les mots "prud'homie / prud'homal / prud'homale / prud'homaux / prud'homme / prud'hommes), je crois (?) qu'il n'y a pas d'autres mots contenant d'apostrophe en français que l'on doive considérer comme constituant un seul mot
bonjour, pour info :
Les apostrophes ont été supprimées dans les mots suivants : entrouvrir, entracte, entraide, entraccorder, entraccorder, entraccuser, grand'rue, grand'mère (devenue un trait d'union depuis 1935)
(patronymes irlandais O' ou «fils de») - O'Connor, - O'Driscoll (!) - ...
(génitif anglais) - chez Maxim's, - au Fouquet's - ...
(formés à partir de l'adjectif prod, «sage» en ancien français) - prud'homme, - prud'homie, - prud'homal
- aujourd'hui (du latin «hodie»)
-- @@@@@ E -00 comme on est very beaux dis ! ' `) / |_ =="
Pierre <nospam@zzz.com> wrote:
il faudrait juste qu'il gère spécifiquement le mot "aujourd'hui", et les mots
"prud'homie / prud'homal / prud'homale / prud'homaux / prud'homme /
prud'hommes), je crois (?) qu'il n'y a pas d'autres mots contenant
d'apostrophe en français que l'on doive considérer comme constituant un
seul mot
bonjour,
pour info :
Les apostrophes ont été supprimées dans les mots suivants :
entrouvrir,
entracte,
entraide,
entraccorder,
entraccorder,
entraccuser,
grand'rue,
grand'mère (devenue un trait d'union depuis 1935)
il faudrait juste qu'il gère spécifiquement le mot "aujourd'hui", et les mots "prud'homie / prud'homal / prud'homale / prud'homaux / prud'homme / prud'hommes), je crois (?) qu'il n'y a pas d'autres mots contenant d'apostrophe en français que l'on doive considérer comme constituant un seul mot
bonjour, pour info :
Les apostrophes ont été supprimées dans les mots suivants : entrouvrir, entracte, entraide, entraccorder, entraccorder, entraccuser, grand'rue, grand'mère (devenue un trait d'union depuis 1935)
(patronymes irlandais O' ou «fils de») - O'Connor, - O'Driscoll (!) - ...
(génitif anglais) - chez Maxim's, - au Fouquet's - ...
(formés à partir de l'adjectif prod, «sage» en ancien français) - prud'homme, - prud'homie, - prud'homal
- aujourd'hui (du latin «hodie»)
-- @@@@@ E -00 comme on est very beaux dis ! ' `) / |_ =="
Pierre
Alors là Sam chapeau bas : 2 scripts pour le prix d'un ! Je n'ai plus qu'à choisir, merci beaucoup...
Quant à DenisB, merci pour la liste et bravo pour l'érudition... Pour info, certaines graphies ont été effectivement rectifiées mais ne sont que des recommandations ; par exemple la graphie "entr'ouvrir" au lieu de la graphie rectifiée "entrouvrir" n'a pas été "supprimée" et reste encore tout à fait correcte.
Pierre
Alors là Sam chapeau bas : 2 scripts pour le prix d'un ! Je n'ai plus qu'à
choisir, merci beaucoup...
Quant à DenisB, merci pour la liste et bravo pour l'érudition... Pour
info, certaines graphies ont été effectivement rectifiées mais ne sont que
des recommandations ; par exemple la graphie "entr'ouvrir" au lieu de la
graphie rectifiée "entrouvrir" n'a pas été "supprimée" et reste encore
tout à fait correcte.
Alors là Sam chapeau bas : 2 scripts pour le prix d'un ! Je n'ai plus qu'à choisir, merci beaucoup...
Quant à DenisB, merci pour la liste et bravo pour l'érudition... Pour info, certaines graphies ont été effectivement rectifiées mais ne sont que des recommandations ; par exemple la graphie "entr'ouvrir" au lieu de la graphie rectifiée "entrouvrir" n'a pas été "supprimée" et reste encore tout à fait correcte.
Pierre
SAM
Pierre wrote:
il faudrait juste qu'il gère spécifiquement le mot "aujourd'hui", et les mots "prud'homie / prud'homal / prud'homale / prud'homaux / prud'homme / prud'hommes), je crois (?) qu'il n'y a pas d'autres mots contenant d'apostrophe en français que l'on doive considérer comme constituant un seul mot
bonjour, pour info :
Bon alors petite modification, et peut-être un peu tiré par les cheveux ? :
On supprime le - ou le ' dans les mots composés issus d'un tableau de référence on repère et réduit tous les trucs qui ne sont pas des mots et on s'en sert de séparateur pour créer le tableau des mots tableau qu'on trie et inverse on en supprime les éléments vide enfin ... la longueur de ce tableau nous donne le nombre de mots
Les apostrophes ont été supprimées dans les mots suivants :
C'est dingue ça !
Pierre <nospam@zzz.com> wrote:
il faudrait juste qu'il gère spécifiquement le mot "aujourd'hui", et les mots
"prud'homie / prud'homal / prud'homale / prud'homaux / prud'homme /
prud'hommes), je crois (?) qu'il n'y a pas d'autres mots contenant
d'apostrophe en français que l'on doive considérer comme constituant un
seul mot
bonjour,
pour info :
Bon alors petite modification,
et peut-être un peu tiré par les cheveux ? :
On supprime le - ou le ' dans les mots composés issus d'un tableau de
référence
on repère et réduit tous les trucs qui ne sont pas des mots et on s'en
sert de séparateur pour créer le tableau des mots
tableau qu'on trie et inverse
on en supprime les éléments vide
enfin ... la longueur de ce tableau nous donne le nombre de mots
il faudrait juste qu'il gère spécifiquement le mot "aujourd'hui", et les mots "prud'homie / prud'homal / prud'homale / prud'homaux / prud'homme / prud'hommes), je crois (?) qu'il n'y a pas d'autres mots contenant d'apostrophe en français que l'on doive considérer comme constituant un seul mot
bonjour, pour info :
Bon alors petite modification, et peut-être un peu tiré par les cheveux ? :
On supprime le - ou le ' dans les mots composés issus d'un tableau de référence on repère et réduit tous les trucs qui ne sont pas des mots et on s'en sert de séparateur pour créer le tableau des mots tableau qu'on trie et inverse on en supprime les éléments vide enfin ... la longueur de ce tableau nous donne le nombre de mots
Alors là Sam chapeau bas : 2 scripts pour le prix d'un ! Je n'ai plus qu'à choisir, merci beaucoup...
Oui, bon ... c'est tout de même à rôder ! Je n'ai sans doute pas écarté tous les pièges
Olivier Miakinen
Merci Olivier pour ton aide. Malheureusement ton message a été tronqué, il se termine ainsi :
Si Word avait compté 3 pour mes deux phrases de tests, j'imagine que rajouter une apostrophe dans le test a des chances de retourner le même résultat : "[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+"
C'est plutôt moi qui ai arrêté mon article ici car je n'avais rien de très intelligent à ajouter... ;-)
C'est vrai que j'aurais pu mettre une formule de salutation ou une signature, mais j'avais la flemme.
J'ai essayé de modifier la formule du 1er script ainsi :
var exp=new RegExp("[a-zA-Z0-9éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+","g");
(en rajoutant l'apostrophe donc), et le résultat est toujours "faux", càd de 948 mots alors que Word trouve 890. [...]
Voici les résultats :
c'est l'été aujourd'hui --> Word 3 mots / 1er script (sans ') 6 mots / 1er script (avec ') 3 mots / En réalité : 5 c'était l'été avant-hier --> Word 3 mots / 1er script (sans ') 5 mots / 1er script (avec ') 3 mots / En réalité : 5
Bon, j'avais donc une bonne intuition concernant les apostrophes. Mais mon intention était surtout de t'inviter à rechercher ce qui, dans Word, serait différent de la recherche que tu fais. Tu peux partir de ton texte d'environ 900 mots, puis en supprimer petit à petit pour voir où se trouvent les différences.
Si ça se trouve, le test de Word correspond de façon simpliste à : var exp=new RegExp("[^ ]+","g"); (il doit y avoir une espace normale et une espace insécable, mais mon logiciel remplace tout par une espace simple)
Du coup, il trouverait quatre mots au lieu de deux dans « qui ? moi ? »
Au départ cette mauvaise concordance avec Word et Open Office me posait vraiment problème, car je voulais absolument que mon script affiche un résultat identique aux traitements de texte (mon travail étant tarifé au nombre de mots, si mon client veut contrôler avec Word par exemple il va penser que je l'escroque...). Finalement je vais peut-être mettre sur mon site un message explicatif pour prouver que le script est plus proche de la vérité que les fonctions statistiques des traitements de texte...
Quitte à avoir une différence, je te conseille d'en avoir une qui soit à l'avantage de ton client : ça ne te fera pas une différence énorme en termes pécuniaires, mais tu seras mieux apprécié, et du coup ils n'en travailleront que mieux.
J'espère que tu reposteras ton message pour que je le lise en totalité, en tout cas merci de nouveau !
:-D
Merci Olivier pour ton aide. Malheureusement ton message a été tronqué, il
se termine ainsi :
Si Word avait compté 3 pour mes deux phrases de tests, j'imagine que
rajouter une apostrophe dans le test a des chances de retourner le même
résultat :
"[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+"
C'est plutôt moi qui ai arrêté mon article ici car je n'avais rien de
très intelligent à ajouter... ;-)
C'est vrai que j'aurais pu mettre une formule de salutation ou une
signature, mais j'avais la flemme.
J'ai essayé de modifier la formule du 1er script ainsi :
var exp=new
RegExp("[a-zA-Z0-9éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+","g");
(en rajoutant l'apostrophe donc), et le résultat est toujours "faux", càd
de 948 mots alors que Word trouve 890. [...]
Voici les résultats :
c'est l'été aujourd'hui --> Word 3 mots / 1er script (sans ') 6 mots /
1er script (avec ') 3 mots / En réalité : 5
c'était l'été avant-hier --> Word 3 mots / 1er script (sans ') 5 mots /
1er script (avec ') 3 mots / En réalité : 5
Bon, j'avais donc une bonne intuition concernant les apostrophes. Mais
mon intention était surtout de t'inviter à rechercher ce qui, dans Word,
serait différent de la recherche que tu fais. Tu peux partir de ton
texte d'environ 900 mots, puis en supprimer petit à petit pour voir où
se trouvent les différences.
Si ça se trouve, le test de Word correspond de façon simpliste à :
var exp=new RegExp("[^ ]+","g");
(il doit y avoir une espace normale et une espace insécable, mais mon
logiciel remplace tout par une espace simple)
Du coup, il trouverait quatre mots au lieu de deux dans « qui ? moi ? »
Au départ cette mauvaise concordance avec Word et Open Office me posait
vraiment problème, car je voulais absolument que mon script affiche un
résultat identique aux traitements de texte (mon travail étant tarifé au
nombre de mots, si mon client veut contrôler avec Word par exemple il va
penser que je l'escroque...). Finalement je vais peut-être mettre sur mon
site un message explicatif pour prouver que le script est plus proche de
la vérité que les fonctions statistiques des traitements de texte...
Quitte à avoir une différence, je te conseille d'en avoir une qui soit à
l'avantage de ton client : ça ne te fera pas une différence énorme en
termes pécuniaires, mais tu seras mieux apprécié, et du coup ils n'en
travailleront que mieux.
J'espère que tu reposteras ton message pour que je le lise en totalité, en
tout cas merci de nouveau !
Merci Olivier pour ton aide. Malheureusement ton message a été tronqué, il se termine ainsi :
Si Word avait compté 3 pour mes deux phrases de tests, j'imagine que rajouter une apostrophe dans le test a des chances de retourner le même résultat : "[a-zA-Z0-9-éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+"
C'est plutôt moi qui ai arrêté mon article ici car je n'avais rien de très intelligent à ajouter... ;-)
C'est vrai que j'aurais pu mettre une formule de salutation ou une signature, mais j'avais la flemme.
J'ai essayé de modifier la formule du 1er script ainsi :
var exp=new RegExp("[a-zA-Z0-9éèêëàáâäóòôöíìîïúùûüçæ½ñÿÉÈÊËÀÁÂÄÒÓÔÖÌÍÎÏÚÙÛÜÇƼѾ'-]+","g");
(en rajoutant l'apostrophe donc), et le résultat est toujours "faux", càd de 948 mots alors que Word trouve 890. [...]
Voici les résultats :
c'est l'été aujourd'hui --> Word 3 mots / 1er script (sans ') 6 mots / 1er script (avec ') 3 mots / En réalité : 5 c'était l'été avant-hier --> Word 3 mots / 1er script (sans ') 5 mots / 1er script (avec ') 3 mots / En réalité : 5
Bon, j'avais donc une bonne intuition concernant les apostrophes. Mais mon intention était surtout de t'inviter à rechercher ce qui, dans Word, serait différent de la recherche que tu fais. Tu peux partir de ton texte d'environ 900 mots, puis en supprimer petit à petit pour voir où se trouvent les différences.
Si ça se trouve, le test de Word correspond de façon simpliste à : var exp=new RegExp("[^ ]+","g"); (il doit y avoir une espace normale et une espace insécable, mais mon logiciel remplace tout par une espace simple)
Du coup, il trouverait quatre mots au lieu de deux dans « qui ? moi ? »
Au départ cette mauvaise concordance avec Word et Open Office me posait vraiment problème, car je voulais absolument que mon script affiche un résultat identique aux traitements de texte (mon travail étant tarifé au nombre de mots, si mon client veut contrôler avec Word par exemple il va penser que je l'escroque...). Finalement je vais peut-être mettre sur mon site un message explicatif pour prouver que le script est plus proche de la vérité que les fonctions statistiques des traitements de texte...
Quitte à avoir une différence, je te conseille d'en avoir une qui soit à l'avantage de ton client : ça ne te fera pas une différence énorme en termes pécuniaires, mais tu seras mieux apprécié, et du coup ils n'en travailleront que mieux.
J'espère que tu reposteras ton message pour que je le lise en totalité, en tout cas merci de nouveau !