Il est possible dans Word de compter les mots d'un documents, mais le
problème, c'est qu'il considère comme un mot tout ce qui est délimité par
des espaces.
Ainsi, si je tape 'Comment ça va ?', il me compte 4 mots (le quatrième mot
est le point d'interrogation).
Je voudrais donc créer une macro permettant de compter les mots
"correctement", en utilisant la règle suivante :
un mot est la chaîne de caractères de lettres et/ou chiffres (0-9, a-z, A-Z
et toutes les lettres accentuées, majuscules ou minuscules) la plus longue
non coupée par d'autres caractères.
Voici quelques exemples pour mieux me faire comprendre (enlever les
apostrophes) :
'Ca va ?' : Une espace sépare les chaînes 'Ca' et 'va'. L'espace insécable
suivie du point d'interrogation n'est pas considérée comme un mot car ces
deux caractères ne font pas partie de ceux définissant un mot (chiffres,
lettres et lettres accentuées). On a donc ici au total 2 mots.
'Je n'arrive pas à compter les mots.' : La fonction de comptage de Word ne
compterait que 7 mots, alors que 'n'arrive' représente deux mots, d'après la
règle précédente : en effet, les deux chaînes de caractères sont coupées par
un caractère "parasite", l'apostrophe. Il y a donc 8 mots.
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
Thierry Fontenelle [MSFT]
Bonjour,
Effectivement, la fonction de comptage des mots dans Word est pour le moment assez rudimentaire. Elle est traditionnellement utilisée pour obtenir une approximation quant au nombre de mots; tout le problème vient de la définition de ce qu'on entend par mot, en fait (la définition utilisée ici est effectivement "toute séquence de caractères comprise entre deux espaces"; la majorité des utilisateurs s'en satisfont et un raffinement du comptage devrait alors prendre en compte la langue dans laquelle le texte est rédigé, afin d'appliquer des heuristiques différentes). Actuellement, l'outil est le même pour toutes les langues, mais on peut effectivement imaginer une version future qui serait plus raffinée (je vais transmettre ces informations...).
Cela dit, le problème est plus complexe que vous ne le décrivez ci-dessous; ce que vous ambitionnez de faire revient à écrire un segmenteur de mots (ce qu'on appelle en anglais un "Word Breaker", ou un "tokenizer"). Le problème de l'apostrophe est intéressant: elle n'est pas toujours un caractère parasite: dans l'exemple cité, elle l'est (comme pour m', n', s', d', qu'...). Mais vous serez d'accord avec moi que vous ne souhaiteriez pas couper le mot "aujourd'hui" en deux, même s'il contient une apostrophe (idem pour prud'homme, prud'hommal, presqu'île...). L'apostrophe fait partie intégrante de ces mots. Un autre problème est celui qui concerne le traitement du trait d'union. Dans la phrase
"Le match France-Espagne était beau."
on devrait compter 6 mots (France et Espagne étant des mots distincts). Idem pour "les relations employeurs- employés". Pourtant, il existe des milliers de mots comportant un trait d'union que l'on souhaite probablement compter comme un seul mot (tire-bouchon, coupe-gorge, presse-papier...). N'oublions pas non plus les clitiques, ces mots qu'on attache à la fin de certains autres mots avec un trait d'union (-ci dans "cette maison-ci"; -en dans "prends-en"; -moi et -là dans "donne-moi ce livre- là"). Je présume qu'on souhaiterait les considérer comme des mots distincts aussi. Je ne parle pas des ambiguïtés pour le mot "rendez-vous" (rendez-vous = 1 mot si c'est un nom commun, 2 mots si c'est le verbe "se rendre" à l'impératif). Que faire aussi de mots comme "hors- d'oeuvre" (votre heuristique le couperait après l'apostrophe, alors qu'on souhaite probablement ne compter qu'un seul mot).
Comme vous le voyez, il n'est pas impossible de régler ce problème (nous le faisons pour développer des correcteurs orthographiques et grammaticaux, entre autres applications), mais cela nécessite généralement pas mal de connaissances linguistiques qu'il faut inculquer à l'ordinateur.
J'espère que vous trouverez ces quelques notes stimulantes et pas décourageantes!
Bien à vous, et bon courage!
Thierry
Thierry Fontenelle [MSFT] Microsoft Natural Language Group
-----Original Message----- Bonjour,
Il est possible dans Word de compter les mots d'un documents, mais le
problème, c'est qu'il considère comme un mot tout ce qui est délimité par
des espaces. Ainsi, si je tape 'Comment ça va ?', il me compte 4 mots (le quatrième mot
est le point d'interrogation).
Je voudrais donc créer une macro permettant de compter les mots
"correctement", en utilisant la règle suivante : un mot est la chaîne de caractères de lettres et/ou chiffres (0-9, a-z, A-Z
et toutes les lettres accentuées, majuscules ou minuscules) la plus longue
non coupée par d'autres caractères.
Voici quelques exemples pour mieux me faire comprendre (enlever les
apostrophes) :
'Ca va ?' : Une espace sépare les chaînes 'Ca' et 'va'. L'espace insécable
suivie du point d'interrogation n'est pas considérée comme un mot car ces
deux caractères ne font pas partie de ceux définissant un mot (chiffres,
lettres et lettres accentuées). On a donc ici au total 2 mots.
'Je n'arrive pas à compter les mots.' : La fonction de comptage de Word ne
compterait que 7 mots, alors que 'n'arrive' représente deux mots, d'après la
règle précédente : en effet, les deux chaînes de caractères sont coupées par
un caractère "parasite", l'apostrophe. Il y a donc 8 mots.
Je ne suis pas sûr d'avoir été clair :-)
Est-ce possible de programmer tout ça ?
Merci -- Nicolas B.
.
Bonjour,
Effectivement, la fonction de comptage des mots dans Word
est pour le moment assez rudimentaire. Elle est
traditionnellement utilisée pour obtenir une approximation
quant au nombre de mots; tout le problème vient de la
définition de ce qu'on entend par mot, en fait (la
définition utilisée ici est effectivement "toute séquence
de caractères comprise entre deux espaces"; la majorité
des utilisateurs s'en satisfont et un raffinement du
comptage devrait alors prendre en compte la langue dans
laquelle le texte est rédigé, afin d'appliquer des
heuristiques différentes). Actuellement, l'outil est le
même pour toutes les langues, mais on peut effectivement
imaginer une version future qui serait plus raffinée (je
vais transmettre ces informations...).
Cela dit, le problème est plus complexe que vous ne le
décrivez ci-dessous; ce que vous ambitionnez de faire
revient à écrire un segmenteur de mots (ce qu'on appelle
en anglais un "Word Breaker", ou un "tokenizer"). Le
problème de l'apostrophe est intéressant: elle n'est pas
toujours un caractère parasite: dans l'exemple cité, elle
l'est (comme pour m', n', s', d', qu'...). Mais vous serez
d'accord avec moi que vous ne souhaiteriez pas couper le
mot "aujourd'hui" en deux, même s'il contient une
apostrophe (idem pour prud'homme, prud'hommal,
presqu'île...). L'apostrophe fait partie intégrante de ces
mots.
Un autre problème est celui qui concerne le traitement du
trait d'union. Dans la phrase
"Le match France-Espagne était beau."
on devrait compter 6 mots (France et Espagne étant des
mots distincts). Idem pour "les relations employeurs-
employés". Pourtant, il existe des milliers de mots
comportant un trait d'union que l'on souhaite probablement
compter comme un seul mot (tire-bouchon, coupe-gorge,
presse-papier...). N'oublions pas non plus les clitiques,
ces mots qu'on attache à la fin de certains autres mots
avec un trait d'union (-ci dans "cette maison-ci"; -en
dans "prends-en"; -moi et -là dans "donne-moi ce livre-
là"). Je présume qu'on souhaiterait les considérer comme
des mots distincts aussi. Je ne parle pas des ambiguïtés
pour le mot "rendez-vous" (rendez-vous = 1 mot si c'est un
nom commun, 2 mots si c'est le verbe "se rendre" à
l'impératif). Que faire aussi de mots comme "hors-
d'oeuvre" (votre heuristique le couperait après
l'apostrophe, alors qu'on souhaite probablement ne compter
qu'un seul mot).
Comme vous le voyez, il n'est pas impossible de régler ce
problème (nous le faisons pour développer des correcteurs
orthographiques et grammaticaux, entre autres
applications), mais cela nécessite généralement pas mal de
connaissances linguistiques qu'il faut inculquer à
l'ordinateur.
J'espère que vous trouverez ces quelques notes stimulantes
et pas décourageantes!
Bien à vous, et bon courage!
Thierry
Thierry Fontenelle [MSFT]
Microsoft Natural Language Group
-----Original Message-----
Bonjour,
Il est possible dans Word de compter les mots d'un
documents, mais le
problème, c'est qu'il considère comme un mot tout ce qui
est délimité par
des espaces.
Ainsi, si je tape 'Comment ça va ?', il me compte 4 mots
(le quatrième mot
est le point d'interrogation).
Je voudrais donc créer une macro permettant de compter
les mots
"correctement", en utilisant la règle suivante :
un mot est la chaîne de caractères de lettres et/ou
chiffres (0-9, a-z, A-Z
et toutes les lettres accentuées, majuscules ou
minuscules) la plus longue
non coupée par d'autres caractères.
Voici quelques exemples pour mieux me faire comprendre
(enlever les
apostrophes) :
'Ca va ?' : Une espace sépare les chaînes 'Ca' et 'va'.
L'espace insécable
suivie du point d'interrogation n'est pas considérée
comme un mot car ces
deux caractères ne font pas partie de ceux définissant un
mot (chiffres,
lettres et lettres accentuées). On a donc ici au total 2
mots.
'Je n'arrive pas à compter les mots.' : La fonction de
comptage de Word ne
compterait que 7 mots, alors que 'n'arrive' représente
deux mots, d'après la
règle précédente : en effet, les deux chaînes de
caractères sont coupées par
un caractère "parasite", l'apostrophe. Il y a donc 8 mots.
Effectivement, la fonction de comptage des mots dans Word est pour le moment assez rudimentaire. Elle est traditionnellement utilisée pour obtenir une approximation quant au nombre de mots; tout le problème vient de la définition de ce qu'on entend par mot, en fait (la définition utilisée ici est effectivement "toute séquence de caractères comprise entre deux espaces"; la majorité des utilisateurs s'en satisfont et un raffinement du comptage devrait alors prendre en compte la langue dans laquelle le texte est rédigé, afin d'appliquer des heuristiques différentes). Actuellement, l'outil est le même pour toutes les langues, mais on peut effectivement imaginer une version future qui serait plus raffinée (je vais transmettre ces informations...).
Cela dit, le problème est plus complexe que vous ne le décrivez ci-dessous; ce que vous ambitionnez de faire revient à écrire un segmenteur de mots (ce qu'on appelle en anglais un "Word Breaker", ou un "tokenizer"). Le problème de l'apostrophe est intéressant: elle n'est pas toujours un caractère parasite: dans l'exemple cité, elle l'est (comme pour m', n', s', d', qu'...). Mais vous serez d'accord avec moi que vous ne souhaiteriez pas couper le mot "aujourd'hui" en deux, même s'il contient une apostrophe (idem pour prud'homme, prud'hommal, presqu'île...). L'apostrophe fait partie intégrante de ces mots. Un autre problème est celui qui concerne le traitement du trait d'union. Dans la phrase
"Le match France-Espagne était beau."
on devrait compter 6 mots (France et Espagne étant des mots distincts). Idem pour "les relations employeurs- employés". Pourtant, il existe des milliers de mots comportant un trait d'union que l'on souhaite probablement compter comme un seul mot (tire-bouchon, coupe-gorge, presse-papier...). N'oublions pas non plus les clitiques, ces mots qu'on attache à la fin de certains autres mots avec un trait d'union (-ci dans "cette maison-ci"; -en dans "prends-en"; -moi et -là dans "donne-moi ce livre- là"). Je présume qu'on souhaiterait les considérer comme des mots distincts aussi. Je ne parle pas des ambiguïtés pour le mot "rendez-vous" (rendez-vous = 1 mot si c'est un nom commun, 2 mots si c'est le verbe "se rendre" à l'impératif). Que faire aussi de mots comme "hors- d'oeuvre" (votre heuristique le couperait après l'apostrophe, alors qu'on souhaite probablement ne compter qu'un seul mot).
Comme vous le voyez, il n'est pas impossible de régler ce problème (nous le faisons pour développer des correcteurs orthographiques et grammaticaux, entre autres applications), mais cela nécessite généralement pas mal de connaissances linguistiques qu'il faut inculquer à l'ordinateur.
J'espère que vous trouverez ces quelques notes stimulantes et pas décourageantes!
Bien à vous, et bon courage!
Thierry
Thierry Fontenelle [MSFT] Microsoft Natural Language Group
-----Original Message----- Bonjour,
Il est possible dans Word de compter les mots d'un documents, mais le
problème, c'est qu'il considère comme un mot tout ce qui est délimité par
des espaces. Ainsi, si je tape 'Comment ça va ?', il me compte 4 mots (le quatrième mot
est le point d'interrogation).
Je voudrais donc créer une macro permettant de compter les mots
"correctement", en utilisant la règle suivante : un mot est la chaîne de caractères de lettres et/ou chiffres (0-9, a-z, A-Z
et toutes les lettres accentuées, majuscules ou minuscules) la plus longue
non coupée par d'autres caractères.
Voici quelques exemples pour mieux me faire comprendre (enlever les
apostrophes) :
'Ca va ?' : Une espace sépare les chaînes 'Ca' et 'va'. L'espace insécable
suivie du point d'interrogation n'est pas considérée comme un mot car ces
deux caractères ne font pas partie de ceux définissant un mot (chiffres,
lettres et lettres accentuées). On a donc ici au total 2 mots.
'Je n'arrive pas à compter les mots.' : La fonction de comptage de Word ne
compterait que 7 mots, alors que 'n'arrive' représente deux mots, d'après la
règle précédente : en effet, les deux chaînes de caractères sont coupées par
un caractère "parasite", l'apostrophe. Il y a donc 8 mots.