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

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

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

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

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы