1

HTML の本文が与えられた場合、HTML タグ (IE は単なるプレーン テキスト) を除いて、HTML のチャンクから表示される上位 10 個のキーワードを自動的に抽出する、誰かが書いた関数はありますか?

「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は大丈夫です!

4

2 に答える 2

2

簡単に言えば:

1) 本文の innerHTML を取得します。

2) すべての句読点と \n を削除して、1 行の文字列を作成します。

3) .replace() (/<[^>]*>/g); ですべてのタグを取り除きます。

4) すべての一般的な単語 (/\band\b/g、/\bbut\b/g、...) を取り除きます。たとえば、不要な単語が 4 文字未満の単語である場合は、/\b[.+]{1,3}\b/ を削除します。

  • これで、マークアップや不要な単語のない 1 行の文字列 (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 cycle over (words) オブジェクトを作成して、キー (単一の単語) と値 (その単語の出現回数) を取得します。

この助けを願っています

于 2010-10-11T17:00:41.650 に答える
0

Fabrizio によって概説され、jQuery を使用するオプションへのわずかな変更。

//ページからすべてのテキストを取得

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

myParseText(myDocumentText);

関数 myParseText(myText){

...ここでテキストを処理し、ロジックをカウントしないand、orなどにします。

}

于 2010-10-11T17:39:32.210 に答える