我的问题是¿检测分层或树模式的最佳技术是什么?
我想识别 HTML 页面中的部分,例如:用户登录菜单、导航菜单、内容正文、页脚等。
我正在尝试使用我实现的语法识别(我不喜欢 Lex 和 yacc 这样的经典作品,因为他们不关心 HTML 数据意义)使用 php 并使用 DOM 解析器进行 HTML 遍历(DOMDocument)。
我遇到了麻烦,因为在 html 中直观地表示数据的方式的可变性。例如,一个菜单可以用 实现<ul><li><a href=#>Link1</a><li>Link2....</ul>
,但只有数百种可能性。它还取决于 css 事件(onclick、onmousehover)。从假菜单中识别真正的菜单也存在问题。
我在考虑神经训练,但在所有示例中,我发现它们适用于线性数据,而不是分层数据。我尝试训练一些网络,但很明显它们丢失了 DOM 树元素之间的关系信息。或者也许我不知道如何让它变得更好。
我的模式识别语法结果很差,因为它不接受 html 中可能的“意外”,也不平滑识别,它太严格(不模糊)。
任何想法?