サイトのインデックス作成時のページの重要でない部分の削除について

必要かつ有用なコンテンツを他のryushechekから分離するという問題は、Web上でこの情報またはその情報を収集する人々にしばしば直面します。



HTMLをツリーに解析するアルゴリズムについて詳しく説明する理由は特にないと思います。特に一般化された形式では、このようなパーサーは3〜4大学でコースを書くように教えられているからです。 通常のスタック、引数をスキップするいくつかのチップ(後で必要になるものを除く)、および解析の結果としての出力ツリー。 テキストは構文解析の過程で単語に分割され、単語は別のリストに送信されます。このリストでは、一般情報に加えて、文書内の単語の位置がすべて記憶されます。 リスト内の単語がすでに第1正規形になっていることは明らかです。形態についてはすでに書きました。ここでは、前の記事から単にコピーします。





まず、Zaliznyakの形態学的辞書に基づいて、最大の基底を選択し、語尾を切り捨てて、最初の辞書形式に置き換えます。 このプロセス全体は、迅速な解析のためにツリーに組み立てられ、終了リーフには終了のバリアントが含まれます。 私たちは出会った文字からツリーを下りながら、可能な限り最下位の葉に到達するまで、単語で実行します-そこに、末尾に基づいて、正規化されたものを置き換えます。

通常の形式が見つからない場合は、ステミングを使用します。lib.ruからダウンロードした書籍のテキストに基づいて、エンディングの発生頻度の表を作成し、最も一般的な適切なもの(ツリーも含む)を探して、通常の形式に置き換えます。 単語が5〜10年前の言語でなかった場合、ステミングはうまく機能します-「クローラー」を「クローラー」に簡単に解析します





HTML解析の長い実験の後、HTMLの同じブロックが明らかに同じサブツリーを構成していることに気付きました-大まかに言えば、2ページと2ツリーがあり、それらの間にXORがあれば、必要なコンテンツのみが残ります。 まあ、またはそれが非常に簡単な場合-これらのツリーのほとんどを1つのサイトで横断すると、確率モデルが得られます-ブロックが多いほど、その重要性は低くなります。 20%-30%以上で見つかったすべて-私はそれを捨てます、重複したコンテンツに時間を無駄にすることは意味がありません。



明らかに、解決策が生まれました。サブツリーから特定のCRCをカウントすることを学習し、サブツリーごとに繰り返し回数をカウントするのは簡単です。 その後、再度解析するときに、あまりにも一般的なツリーの上部をリセットするのは簡単で、常に残りのツリーからページテキストを収集できます(ただし、これは本質的にどこにも必要ありません)。



そのため、サイトのすべてのページで2回実行-最初に統計を収集し、次にインデックスを作成-パターンを分離する問題は簡単に解決されます。 さらに、多くの利点があります- <td></td>



<b></b>



などの構造は、最初に捨てられます



私の記事の全内容とリストはここで更新されます: http : //habrahabr.ru/blogs/search_engines/123671/



All Articles