2010-10-11 30 views
1

給定HTML主體,是否有任何功能可以讓用戶自動提取從大塊HTML中出現的前10個關鍵字,不包括任何HTML標記(IE只是純文本)?Javascript自動從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
短期而言

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)使一對..在週期以上(字)對象以獲得密鑰(一個字)和值(occurencies該單詞)

希望這有助於

0

對Fabrizio概述的選項和使用jQuery的輕微修改。

//抓住從頁面的所有文字

VAR myDocumentText = $( 「身體」)文本()。

myParseText(myDocumentText);

功能myParseText(會將myText){

...做文字處理,這裏與你的邏輯不計及,或等

}