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) {
... сделать обработку текста здесь с вашей логикой, чтобы не считать и, или, и т. д.
}