4 votes

Comment analyser un mot dans un texte en JavaScript ?

Dans la page de texte, je voudrais examiner chaque mot. Quelle est la meilleure façon de lire chaque mot à ce moment-là ? Il est facile de trouver les mots qui sont entourés d'espaces, mais dès que l'on se met à analyser les mots du texte, cela peut devenir compliqué.

Au lieu de définir ma propre méthode d'analyse des mots à partir du texte, existe-t-il quelque chose de déjà construit qui analyse les mots à l'aide d'expressions régulières ou d'autres méthodes ?

Quelques exemples de mots dans le texte.

  word word. word(word) word's word word' "word" .word. 'word' sub-word

4voto

rid Points 24625

Vous pouvez utiliser :

text = "word word. word(word) word's word word' \"word\" .word. 'word' sub-word";
words = text.match(/[-\w]+/g);

Cela vous donnera un tableau avec tous vos mots.

Dans les expressions régulières, \w signifie tout caractère qui est soit a-z , A-Z , 0-9 o _ . [-\w] signifie tout caractère qui est un \w ou un - . [-\w]+ désigne n'importe lequel de ces caractères qui apparaît 1 fois ou plus.

Si vous souhaitez définir un mot comme étant quelque chose de plus que l'expression ci-dessus, ajoutez les autres caractères qui composent vos mots à l'intérieur du champ [-\w] classe de caractères. Par exemple, si vous souhaitez que les mots contiennent aussi ( y ) pour que la classe de caractères soit [-\w()] .

Pour une introduction aux expressions régulières, consultez l'excellent tutoriel à l'adresse suivante expressions régulières.info .

2voto

Richard H Points 11693

Ce dont vous parlez est Tokenisation . Le moins que l'on puisse dire, c'est qu'il ne s'agit pas d'un problème trivial et qu'il fait l'objet de recherches intensives dans les principaux moteurs de recherche. Il existe un certain nombre de bibliothèques de tokénisation open source dans divers langages côté serveur (voir par exemple les projets Stanford NLP et Lucene), mais pour autant que je sache, il n'y a rien qui puisse s'en approcher en javascript. Vous devrez peut-être créer votre propre bibliothèque :) ou peut-être faire le traitement côté serveur, et charger les résultats via AJAX ?

1voto

Andras Zoltan Points 24996

Je suis d'accord avec la réponse de Richard, mais pour la compléter, l'une des façons les plus simples de construire un tokeniser (à mon avis) est la suivante Antlr et un maniaque a construit une cible Javascript pour celle-ci, ce qui vous permet de lancer et d'exécuter une grammaire dans le navigateur web (voir la section "bibliothèques d'exécution"). ici )

Je ne prétends pas qu'il n'y a pas de courbe d'apprentissage.

-2voto

Chris Francis Points 3233

Jetez un coup d'œil à expressions régulières - vous pouvez définir presque tous les algorithmes d'analyse que vous voulez.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X