【问题标题】:Javascript auto pick keywords from HTMLJavascript 自动从 HTML 中选择关键字
【发布时间】:2010-10-11 16:21:27
【问题描述】:

给定一个 HTML 正文,是否有人编写了任何函数,可以自动提取从一大块 HTML 中出现的前 10 个关键字,不包括任何 HTML 标记(即纯文本)?

它应该忽略“and”、“is”、“but”等常见词,但列出最常见的不常见词。

示例输入:

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 很好!

【问题讨论】:

    标签: javascript keyword dynamic-keyword


    【解决方案1】:

    简而言之:

    1) 获取身体的 innerHTML;

    2) 去掉所有标点符号和\n,这样你就有了一个单行字符串;

    3) 用 .replace() (/]*>/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) 在 (words) 对象上创建一个 for..in 循环以获得键(单个词)和值(该词的出现次数)

    希望有帮助

    【讨论】:

      【解决方案2】:

      对 Fabrizio 概述并使用 jQuery 的选项稍作修改。

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

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

      myParseText(myDocumentText);

      函数 myParseText(myText){

      ...在此处使用您的逻辑处理文本以不计算和,或等。

      }

      【讨论】:

        猜你喜欢
        • 2011-08-27
        • 2021-08-15
        • 1970-01-01
        • 2021-12-15
        • 1970-01-01
        • 2016-08-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多