DOM 트리 기반 웹 콘텐츠 추출 기법

DOM 트리 기반 웹 콘텐츠 추출 기법
안내: 본 포스트의 한글 요약 및 분석 리포트는 AI 기술을 통해 자동 생성되었습니다. 정보의 정확성을 위해 하단의 [원본 논문 뷰어] 또는 ArXiv 원문을 반드시 참조하시기 바랍니다.

초록

본 논문은 웹 페이지의 DOM 트리를 활용해 텍스트와 태그의 비율(Chars‑Nodes Ratio, CNR)을 계산하고, CNR이 높은 노드를 중심으로 블록을 식별함으로써 메인 콘텐츠를 정확히 추출한다. 단일 페이지만으로 동작하며 사전 템플릿이나 언어에 의존하지 않아 모바일 환경이나 다양한 언어의 페이지에 적용 가능하다.

상세 분석

이 연구는 기존의 문자‑기반 혹은 라인‑기반 방법이 페이지 구조 정보를 무시함으로써 발생하는 한계를 극복하고자 한다. 핵심 아이디어는 DOM 트리의 계층적 관계를 이용해 각 노드가 포함하는 텍스트 문자 수와 전체 하위 노드 수의 비율, 즉 CNR(Chars‑Nodes Ratio)을 정의하는 것이다. CNR은 텍스트 노드가 leaf인 특성을 활용해, 텍스트가 풍부한 블록은 높은 비율을, 메뉴·광고·스크립트와 같은 비콘텐츠 영역은 낮은 비율을 갖게 만든다.

알고리즘 1은 루트부터 재귀적으로 각 노드의 weight(하위 노드 수)와 textLength(텍스트 문자 수)를 누적 계산하고, 이를 바탕으로 CNR을 부여한다. 여기서 “nonContentNode”라 명명된 노드(예: img, script, nav 등)는 CNR을 0으로 강제해 노이즈를 사전에 차단한다. 이 과정은 DOM API의 기본 메서드만 사용하므로 구현이 간단하고, 페이지 포맷(공백·줄바꿈)과 무관하게 동작한다.

CNR 계산 후, 알고리즘 2는 CNR이 높은 노드들을 선택하고, 이들 중 서로 포함 관계에 있는 하위 노드를 제거한 뒤, 하위‑상위 관계를 역방향으로 탐색해 최적의 컨테이너 블록을 찾는다. 최종적으로 텍스트 양이 가장 많은 블록을 메인 콘텐츠로 판단한다. 전체 파이프라인은 DOM 트리 크기 N에 대해 O(N) 시간 복잡도를 유지한다는 점에서 실시간 처리에 적합하다.

실험에서는 다양한 도메인(뉴스, 블로그, 위키 등)의 500여 페이지를 대상으로 기존 태그‑비율, CCV, 머신러닝 기반 방법과 비교했으며, 평균 재현율·정밀도가 0.92 이상으로 기존 기법을 앞섰다. 특히 동적으로 생성된 페이지나 비정형 div‑구조에서도 높은 성능을 보였다.

한계점으로는 텍스트 밀도가 높은 광고 블록이 메인 콘텐츠와 유사한 CNR을 가질 경우 오탐이 발생할 수 있다. 또한, 이미지 기반 기사나 비디오 중심 페이지에서는 텍스트 양 자체가 적어 CNR이 낮아 메인 콘텐츠를 놓칠 가능성이 있다. 이러한 경우에는 이미지‑텍스트 연관성 분석이나 외부 시멘틱 정보와 결합하는 보완이 필요하다.

전반적으로 DOM 트리를 활용한 CNR 기반 접근은 구조적 정보를 효과적으로 이용하면서도 구현 복잡도가 낮아 실무 적용 가치가 높으며, 모바일·클라우드 환경에서 경량 콘텐츠 추출 엔진으로 활용될 잠재력이 크다.


댓글 및 학술 토론

Loading comments...

의견 남기기