私の以前の記事は、主にデータマイニングの理論的な部分に関するものでしたが、今日、候補論文で使用される実用的な例についてお話したいと思います(これに関連して、この開発段階でのこの例は本格的な作業プロジェクトとは見なされませんが、プロトタイプと見なすことができます)。
「情報ノイズ」のWebページをクリアします。
それで問題は何ですか?
問題は、ウェブサイトのかなりの半分に、ページ上に不要な情報が大量に含まれていることです。いわゆる「情報ノイズ」です。 ナビゲーション、関連リンク、デザイン要素、そしてもちろん広告が含まれます。
現在まで、コンテンツフィルタリングに関連するすべての決定は技術レベルで結び付けられています-ポップアップ、JavaScript、Flashのブロック、禁止語の検索、登録済みホストのデータベースからの広告ユニットの削除。 もちろん、他の方法もありますが、今はそれについてではありません...
情報ブロックの概念
この概念の意味は次のとおりです。Webページを全体としてではなく、情報ブロックのセットと見なし、表示される情報の単位と見なします。 このアプローチにより、コンテンツの必要なセクションを選択し、ページ全体のコンテキストで分析できます。 これについてはさらに詳しく説明します。
ユーザーにとっての情報の重要性を判断する
すべての情報がユーザーにとって同じように役立つ(重要な)わけではないことは明らかです。 重要性の評価は主観的な概念であることも明らかですが、ここでは絶対的なふりをしません。 しかし、直感的に、情報の重要性は3つのタイプに分類できます。
*重要な情報(メインコンテンツ)
*重要でない情報(関連リンク、表示回数が多い、「この製品で購入した」など)
*情報のゴミ(見出し、地下室、広告など)
もちろん、それをより多くのレベルに分解することもできますが、これまでのところ、これら3つのレベルで管理すると思います。
問題とタスク
この目標を達成するには、次のタスクを解決する必要がありました。
* Webページの情報ブロックへの分割
*特定のブロックの重要性を評価するモデルを作成する
*どのタイプの重要度を割り当てるかを決定するロジック
Webページを情報ブロックに分割する
一見すると思えるかもしれませんが、それほど簡単な作業ではありません。 初期のアプローチは、1)DOMモデルの分析2)サイト内の多数のページの分析と、いわゆる 「テンプレート」サイト。 原則として、これらのアプローチは良い結果をもたらしませんでした。
解決策は、Microsoft Research AsiaのVIPS(Visionベースのページセグメンテーションアルゴリズム)アルゴリズムを使用することです 。 要するに、彼らは組み合わせたアプローチ、すなわちDOMモデルの分析と、専門家または実験的な方法によって導き出された独自のセグメンテーションルールを使用します。
見られる短所:
*アンマネージC ++ライブラリ。新しいコントロール(WebBrowserなど)との緊密な統合がないため、統合をいじる必要がありました。
*アルゴリズムはGranularityプロパティを使用します-つまり 情報ブロック間の最小距離。 これらの距離はサイトごとに異なることは明らかです。 今、あなたは手で拾う必要があります。 粒度の自動選択は、個々の研究のトピックです。
*出力では、アルゴリズムはXMLに似たものを生成しますが、さらに悪いことに、この形式を「理解」するパーサーを作成するのに非常に長い時間がかかりました
これにもかかわらず、VIPSは非常に便利です。
特定のブロックの重要性を評価するモデルを作成する
私はこの部分を完全に自分でやったので、ここではすべてがもっと面白いです。
主なタスクは、さまざまなブロックを区別するための評価基準とルールを決定することでした。 または、より具体的には、一連のリンクとメインコンテンツをどのような兆候で区別できますか? この場合、リンクである単語の出現率は、通常のテキストよりも間違いなく高くなります。 さらに、メインコンテンツの文の平均長は、基本的にリンクブロックよりも長くなります。 したがって、ブロックの主なパラメーター(特性)を分析することで、どのブロックに直面しているかがわかります。
モデルは多変量解析と回帰に基づいています。 コンテンツのタイプの決定に理論的に影響を与える可能性のある約20のパラメーターを選択しました。 次に、回帰モデルの各パラメーターの重要性を判断する必要がありました。
パラメータには次のものがあります。
*文の平均長
*単語数
*ストップワードの数
*リンク、画像、リストなどの数
*単語リンクの数/すべての単語の数、ストップワードの出現率などの相対パラメータ
*など
情報ブロックの重要性の回帰モデル
このために、次のプログラムが開発されました。
* Googleの100〜200のサイトから選択
*各Webページを情報ブロックに分割
*ブロックの内容を20個のパラメーターで解析(parsil)
*これをすべてデータベースに入れます
さらに、各ブロックの専門家は、各ブロックの手で各ブロックの「重要性」を設定します。
その結果、データベースが取得され、それに基づいて回帰分析が実行され、その重要度が各パラメーター(重要度評価への影響の程度)に設定されました。 回帰はSPSS数学パッケージに組み込まれています。
結果は次のタイプの回帰モデルでした:
y(param1、...、param20)= coef1 * param1 + coef2 * param2 + coef3 * param3 + ... + coef20 * param20
ストップワードの割合が最も重要なパラメーターであることがわかりました。
このモデルを使用して、特定のブロックのパラメーターを転送し、その定量的(数)推定値を取得します。 より大きな数値を受け取ったブロックは、ユーザーにとってより「重要」であることは明らかです。
このモデルの精度は、より多くの調査済みWebページを分析することで改善できます。 結局のところ、非常に正確なモデルの200ページは明らかに十分ではありませんが、プロトタイプには十分です。
「重要な」ブロックの定義
最初に、「20を超える-メインコンテンツ、10を超えるが20未満-メインではない」などのタイプの重要度評価の「境界」を使用しました。 しかし、この方法では結果が得られませんでした。「ページ間の不一致」と係数がいくつかのWebページ内で大幅に異なる可能性があるためです。
良い解決策は、ファジーc-meansクラスタリングアルゴリズムを使用することでした。このアルゴリズムは、特定のページについて、ブロックを数値でクラスタリングする方法を「決定」し、3つのクラスターに「分配」します(3つの重要性があるため3つ)。
結果は何ですか?
その結果、メインコンテンツのみを取得します(もちろん、これは理想的です。上記の問題を参照してください)。
プロトタイプの実装は、「SmartBrowser」というコードネームのブラウザーの形式で実行され、サイトhttp://smartbrowser.codeplex.com/から簡単に取得できます。
要件:
* Windows 32ビット(VIPS dllをシステムに登録する必要があります)
* .NET Framework 3.5
例
例はこのページにあり、プログラムに関するニュースが最初に公開されています。
これはプログラムがどのように見えるかです:
レビュー
アメリカの「一部の」人々は、さらなる発展のスポンサーになりたかったのですが、その後、危機は「襲い」、すべてが終わりました。
Microsoft Research Asiaのメンバー(VIPSアルゴリズムの作成者)は、このアイデアについて前向きに語り、開発の成功を祈っていました。
コメントがある場合は、このトピックを開発するか、単にアドバイスを手伝いたいです-私はいつも幸せです。 誰かがこの分野で土台を持っている場合-協力しましょう:)