Javascript автоматически выбирает ключевые слова из HTML - PullRequest
1 голос
/ 11 октября 2010

Учитывая тело HTML, есть ли какая-нибудь функция, написанная кем-то, которая будет автоматически извлекать, скажем, топ-10 ключевых слов, которые появляются из фрагмента HTML, исключая любые теги 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 ]

2 голосов
/ 11 октября 2010

кратко:

1) возьмите innerHTML своего тела;

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

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

4) удалите все общие слова (/ \ band \ b / g, / \ bbut \ b/г, ...);Например, если ваши бесполезные слова - это те, у которых меньше 4 символов, то удалите /\b[.+]]1,3 broadcast\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 за цикл (слова)объект, чтобы получить ключ (одно слово) и значение (вхождения для этого слова)

Надеюсь, что эта помощь

0 голосов
/ 11 октября 2010

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

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

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

myParseText (myDocumentText);

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

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

}

...