私の質問は、階層またはツリー パターンを検出するための最良のテクノロジは何でしょうか?
ユーザーのログイン メニュー、ナビゲーション メニュー、コンテンツの本文、フッターなど、HTML ページのパーツを認識したい。
私が実装した文法認識を試しています(HTMLデータセンスを気にしないため、この作業ではLex、yaccのようなクラシックは好きではありません)phpとHTMLウォーキング(DOMDocument)にDOMパーサーを使用しています。
htmlでデータを視覚的に表現する方法にばらつきがあるため、問題が発生しています。たとえば、メニューは で実装できますが<ul><li><a href=#>Link1</a><li>Link2....</ul>
、数百の可能性は 1 つしかありません。css イベント (onclick、onmousehover) にも依存します。また、偽のメニューから本物のメニューを認識するのにも問題があります。
私はニューラル トレーニングを考えていましたが、すべての例で、階層データではなく線形データであることがわかりました。いくつかのネットワークをトレーニングしてみましたが、DOM ツリー要素間の関係情報が失われていることは明らかです。あるいは、改善する方法を知らないのかもしれません。
私のパターン認識文法は、html で発生する可能性のある「事故」を受け入れず、認識をスムーズにしないため、結果が不十分です。厳密すぎます (あいまいではありません)。
何か案が?