• Как сформировать HTML(dom) данные в матричном виде для машинного обучения?

    pro_co_ru
    @pro_co_ru
    Старший инженер-программист
    Ну DOM является древовидной структурой (грубо говоря, частный случай графа). Вопрос в том, как представить этот граф в удобном виде?
    В простейшем случае: взять массив из N на N элементов, где N - число элементов DOM, и представить этот граф в виде матрицы смежности. Ну а сами элементы и их атрибуты можно представить в виде вектора из N элементов, где каждый элемент будет категориальным (название тэга). Если нужно учитывать атрибуты этих тегов, то в векторе из N элементов, элементами сделать другие вектора, которые будут состоять из категориального названия тэга, из каких-нибудь там названий классов, основных атрибутов и т.п. Зависит от того, какие атрибуты считать значимыми и учитывать как ML-фичи, а какие можно проигнорировать.

    Ну а сам процесс формирования, это обход DOM-дерева и заполнение соответствующих структур данных.

    А ещё, лет 10 назад я делал такое решение:
    - фильтровал html, оставлял структуру и значимые для меня атрибуты, остальное откидывал
    - заменял контент в тегах и значения атрибутов на некоторые значения по умолчанию (важна была только структура, а не сам контент)
    - при обходе такого отфильтрованного DOM брал хеш от html в строковом представлении каждой обойдённой ноды со всеми дочерними элементами, и накапливал частоту встречаемости таких хешей с разных сайтов

    В итоге в БД у меня получился список хешей, частота встречаемости и сам html-шаблон из которого этот хеш был сформирован. Но помимо шаблонов я ещё собирал дополнительную инфу, кол-во слов, язык, некоторые значения атрибутов и т.п. Но это уже для более тонкой настройки фильтров.
    Ответ написан
    Комментировать