Javascript自动从HTML中选择关键字

时间:2010-10-11 16:21:27

标签: javascript keyword dynamic-keyword

鉴于有一个HTML体系,是否有人编写过的任何函数会自动提取出一大块HTML中出现的前10个关键字,不包括任何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 个答案:

答案 0 :(得分:2)

简称:

1)采取你身体的内部HTML;

2)去除所有标点符号和\ n所以你有一个单行字符串;

3)使用.replace()去掉所有标签(/&lt; [^&gt;] *&gt; / g);

4)去除所有常用词(/ \ band \ b / g,/ \ bbut \ b / g,...);    例如。如果你的无用的话是那些少于4个字符然后剥离的话    / \ B [+] {1,3} \ 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 ...以获取键(单个单词)和值(该单词的出现位置)

希望这个帮助

答案 1 :(得分:0)

对Fabrizio概述的选项进行轻微修改并使用jQuery。

//抓取页面中的所有文字

var myDocumentText = $(“body”)。text();

myParseText(myDocumentText);

函数myParseText(myText){

...在这里用你的逻辑处理文本,不计算,或等等。

}