Comparer texte

Par Weezy, il y a 9 ans


Bonjour,
Voila cela fait un moment que je bloque sur une partie de mon code.

Voici le problème:
je charge un fichier txt que je range dans une variable 'text':

var text = load('nuageMot4.txt');

Ensuite j'enléve tout les caractères spèciaux du texte contenu dans 'text' ( je les remplaces par une chaine vide):

var pattern = /((^|[^a-z0-9àáâãäåçèéêëìíîïðòóôõöùúûüýÿ]))/gi; textWithoutSpecialChars = text.replace(pattern, " " );

ensuite je voudrais remplacer également tout les petits mots par une chaine vide, par exemple: je, tu, il, elle, nous, vous, ils, elles, me, ma, ça...
Mais pour cela, je voudrais faire appelle à un autre fichier txt contenant la liste des petits mots à remplacer et ensuite comparer le contenu de ce fichier avec la variable 'text'.
C'est sur cette dernière partie ou j'ai des difficultés.

Merci d'avance pour votre aide :)

9 réponses

betaWeb, il y a 9 ans

Hahaha p'tit c*n :P
J'ai fait ça à l'arrache, du coup je n'ai pas trop réfléchis. J'avoue que ton code fonctionne mieux (tu l'as pioché sur Stackoverflow ? :P)

Weezy, il y a 9 ans

Merci pour vos réponse :)

@Advancid dans:

return !~mots.indexOf(mot.replace(/\W/g, "").toLowerCase())

que représenste 'mots'.indexOf()?

betaWeb, il y a 9 ans

Salut,

Ttx :

je,tu,il,elle,nous,vous,ils,elles // ici ta liste

JS :

var excluded_words = load('excluded_words.txt'), regex; excluded_words = excluded_words.split(','); // Tu convertis ta String en Array console.log(excluded_words); excluded_words.forEach(function (word) { regex = new RegExp(word, "g"); textWithoutSpecialChars = textWithoutSpecialChars .replace(word, ''); }); console.log(textWithoutSpecialChars);

Je n'ai pas testé, je te laisse faire tes propres essais.

Weezy, il y a 9 ans

@Advancid

/* On charge un tableau a partir du fichier 'smallWord.txt' */ var textSmallWord = load('texte/smallWord.txt').split(","); var texte = "Je proposes que tu utilises ce code. Il marche bien!" /* La fonction 'inclus' retourne true ou false selon la presence du mot dans le fichier */ function inclus(textSmallWord) { return !~textSmallWord.indexOf(textSmallWord.replace(/\W/g, "").toLowerCase()) } /* On transforme le texte en un tableau de mots on le filtre avec la fonction 'inclus' et on le retransforme en texte */ texte = texte.split(" ").filter(inclus).join(" ") alert (texte);

Cela m'afficher:
"Je Il " au lieu de "proposes utilises code marche bien"

Weezy, il y a 9 ans

@Advancid lorsque j'exécute ton code je tombe pas sur le résultat voulu

Weezy, il y a 9 ans

En gros ton code ne fait rien, ca n'enlève pas les petits mots

Maenhyr, il y a 9 ans

Son code fonctionne parfaitement. Le problème vient du fait que tu as réutilisé le même nom de variable.

/* On charge un tableau a partir du fichier 'smallWord.txt' */ var textSmallWord = load('texte/smallWord.txt').split(","); var texte = "Je proposes que tu utilises ce code. Il marche bien!" /* La fonction 'inclus' retourne true ou false selon la presence du mot dans le fichier */ function inclus(m) { return !~textSmallWord.indexOf(m.replace(/\W/g, "").toLowerCase()) } /* On transforme le texte en un tableau de mots on le filtre avec la fonction 'inclus' et on le retransforme en texte */ texte = texte.split(" ").filter(inclus).join(" ") alert (texte);