2010-10-11 16 views
1

Étant donné un corps de HTML, y a-t-il une fonction qui a été écrite pour extraire automatiquement les 10 mots clés qui apparaissent à partir d'un morceau de HTML, à l'exclusion des balises HTML)?Javascript choisir automatiquement les mots-clés à partir de HTML

Il devrait ignorer les mots communs comme "et", "est" "mais" mais énumérer les mots les plus communs peu communs.

entrée Exemple:

Mary had a <strong>snow</strong> lamb. <img src=lamb.jpg /> The <i>lamb</i> was snow white, it lay in the snow all white. 

Sortie:

Snow (3) 
White (2) 
Lamb (2) 

Jquery est très bien!

Répondre

2

en court:

1) prendre la innerHTML de votre corps;

2) dépouiller toute la ponctuation et \ n de sorte que vous avez une seule ligne de ligne; 3) décaper toutes les étiquettes avec un .replace() (/ < [^>] *>/g); 4) supprimer tous les mots communs (/ \ band \ b/g,/\ bbut \ b/g, ...); E.g. si vos paroles inutiles sont ceux avec moins de 4 caractères puis dénuder /\b[.+]{1,3}\b/

  • maintenant, vous devriez avoir une chaîne d'une ligne (str) sans majoration et paroles inutiles

4a) en option: si vous ne se soucient pas de transformer WoRdCAse juste tout en minuscules (str.toLowerCase())

5) faire une scission sur l'espace vide (str.split ('')), vous obtenez un tableau (arr)

6)

var words = {}, 
     i = arr.length; 

    while(--i) { 
     war extWord = arr[i]; 
     words[extWord] = (!!words[extWord])? words[extWord] + 1 : 1; 
    } 

7) font un pour .. dans le cycle sur (mots) objet pour obtenir la clé (un seul mot) et la valeur (occurencies pour ce mot)

Hope this aide

0

Légère modification de l'option décrite par Fabrizio et utilisation de jQuery.

// saisir tout le texte de la page

var myDocumentText = $ ("corps") texte().

myParseText (myDocumentText);

fonction myParseText (myText) {

... faire du traitement de texte ici avec votre logique de ne pas compter et, ou, etc.

}