1

私の質問は、階層またはツリー パターンを検出するための最良のテクノロジは何でしょうか?

ユーザーのログイン メニュー、ナビゲーション メニュー、コンテンツの本文、フッターなど、HTML ページのパーツを認識したい。

私が実装した文法認識を試しています(HTMLデータセンスを気にしないため、この作業ではLex、yaccのようなクラシックは好きではありません)phpとHTMLウォーキング(DOMDocument)にDOMパーサーを使用しています。

htmlでデータを視覚的に表現する方法にばらつきがあるため、問題が発生しています。たとえば、メニューは で実装できますが<ul><li><a href=#>Link1</a><li>Link2....</ul>、数百の可能性は 1 つしかありません。css イベント (onclick、onmousehover) にも依存します。また、偽のメニューから本物のメニューを認識するのにも問題があります。

私はニューラル トレーニングを考えていましたが、すべての例で、階層データではなく線形データであることがわかりました。いくつかのネットワークをトレーニングしてみましたが、DOM ツリー要素間の関係情報が失われていることは明らかです。あるいは、改善する方法を知らないのかもしれません。

私のパターン認識文法は、html で発生する可能性のある「事故」を受け入れず、認識をスムーズにしないため、結果が不十分です。厳密すぎます (あいまいではありません)。

何か案が?

4

1 に答える 1

1

考えられる方法の 1 つは、多数 (10 ~ 20) の異なる正規表現またはその他の検出方法の配列を用意し、そのうちのいくつが適合するかを確認し、それぞれが正しい頻度に応じて重み付けし、それを値と比較することです。または、必要に応じて、合計を正しく取り、ニューラル ネットワークを使用して選択することもできます。

于 2011-02-08T21:40:36.397 に答える