Recuperer tous les mots d'une page html
karine
-
sam3000 Messages postés 1226 Statut Membre -
sam3000 Messages postés 1226 Statut Membre -
Bonjour !
Je programme en java et je voudrais récuperer tous les mots (et peut-etre le nombre d'occurences de chaque mot) d'une page html.
Quelle methode me conseillez-vous ?
Merci
Je programme en java et je voudrais récuperer tous les mots (et peut-etre le nombre d'occurences de chaque mot) d'une page html.
Quelle methode me conseillez-vous ?
Merci
9 réponses
-
si le nombre de mots peut etre grand tu devrai chercher une methode de Hachage
-
Oui j'ai pensé faire une table de hachage pour compter les mots.
Mais mon problème c'est pour récuperer tous les mots de la page. Car en fait je recupere un flux de reponse d'un serveur Web et je voudrais recuperer les mots quand j'ai des pages html.
Est-ce que je dois les mettre dans un fichier d'abord (j'ai un peur pour la vitesse d'execution) ? Ou bien existe-t-il une autre solution ?
Merci -
tu peut traiter le flux directement (allocation d'objets directement au cours du traitement, l'utilisation d'un dictionnaire pourrais te faciliter la tache)
sachant qu'un mot commence par une "lettre" et fini par une "non lettre"
lettres: abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
-
éèàçîù (et leurs majuscules)
Le signe moins (-) est pour les mots composés -
excuses-moi mais qu'est-ce que tu veux dire par allocation d'objets ?
Et quand tu parles de dictionnaire, tu veux dire que je dois le creer et le remplir avec les mots de la page ou bien utiliser un dictionnaire qui existe déjà ?
Merci pour ton aide ! -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
c'est a toi de créer le dictionnaire (les mots de la page)
en gros l'algorithme sera:creer dictionnaire mot=0; tant que (! flux.eof) { car=lire_caractere_flux si (car est lettre) { si (! mot) { mot_courant=vide mot=1 } mot_courant.ajout_caractere(car) } sinon { si (mot) { si (dictionnaire.contient(mot_courant)) { dictionnaire(mot_courant).valeur++ } sinon { dictionnaire.ajouter(mot_courant) dictionnaire(mot_courant).valeur=1 } mot=0 } } } -
-
c'est juste un algorithme car je connais tres peu java (les notions de base c'est tout)
-
Maintenant mon problème c'est qu'en lisant tous les mots, j'ai aussi le code html qui est récupéré.
Moi je voudrais juste les mots qui ont du "sens", qui me disent de quoi parle la page.
Est-ce que quelqu'un a déjà fait ça ?
J'ai essayé avec une fonction qui enlève les balises html mais ça me donne une erreur java.lang.OutOfMemoryError (c'est une fonction récursive).
En plus meme avec ça, je garde les fonctions javascript par exemple.
Bref, j'aurais bien besoin d'un peu d'aide ;-)
Merci! -
il y a une methode (mais c'est approximatif!)
tu compte les caracteres "<" (compteur++) et ">" (compteur--) tu prend en compte les caracteres que si ton compteur est egal à zero (bien sur c'est 0 sa valeur d'initialisation) ainsi, tu es sur que tu es en dehors d'une balise, bien sur les balises sont aussi des separateurs de mots (non lettre)