Javascript автоматически выбирает ключевые слова из HTML

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

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

Пример ввода:

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) взять внутренний HTML вашего тела;

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

3) удалить все теги с помощью.replace () (/<[^>] *> / g);

4) убрать все общие слова (/\band\b/g, /\bbut\b/g, ...); Например, если ваши бесполезные слова - это те, у которых меньше 4 символов, то удалите /\b[.

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

4a) Необязательно: если вас не волнует WoRdCAse, просто преобразуйте все в нижний регистр (str.toLowerCase ())

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

6)

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

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

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

Надеюсь это поможет

Небольшая модификация опции, изложенной Фабрицио и использующей jQuery.

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

var myDocumentText = $ ("body"). text ();

myParseText (myDocumentText);

function myParseText (myText) {

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

}

Другие вопросы по тегам