2010-10-11 5 views
1

Учитывая тело HTML, есть ли какая-либо функция, которую кто-то написал, которая будет автоматически извлечена, скажут 10 лучших ключевых слов, которые появляются из куска HTML, исключая любые HTML-теги (IE просто текст)?Javascript автоматически выбирает ключевые слова из HTML

Следует игнорировать общие слова типа «и», «есть», но «но» и т. Д., Но перечислять наиболее часто встречающиеся необычные слова.

Пример входных данных:

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. 

Выход:

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

Jquery отлично!

ответ

2

в короткие сроки:

1) принимают innerHTML вашего тела;

2) разделите все знаки препинания и \ n, чтобы у вас была одна строка строки;

3) разделите все метки на .replace() (/ < [^>] *>/g);

4) разделите все обычные слова (/ \ band \ b/g,/\ bbut \ b/g, ...); . если ваши бесполезные слова являются те, с менее чем 4 символов, то полоса /\b[.+]{1,3}\b/

  • теперь вы должны иметь строку в одну строку (строка) без разметки и бесполезные слова

4a) Дополнительно: если вы не заботитесь о WoRdCAse просто превратить все в нижнем регистре (str.toLowerCase())

5) сделать сплит над пустым пространством (str.split ('')), вы получаете массив (обр.)

6)

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

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

7) сделать для .. в цикле над (словами) объект, чтобы получить ключ (одно слова) и значение (occurencies для этого слова)

Надеется, что это поможет

0

Небольшая модификация опции, описанной Fabrizio, и использование jQuery.

// захватить весь текст со страницы

вар myDocumentText = $ ("тело") текст().

myParseText (myDocumentText);

функция myParseText (MYTEXT) {

... сделать обработку текста здесь с логикой не сосчитать и, или и т.д.

}