KR102570477B1 - 웹 페이지에서 자동으로 사용자 식별 객체 획득하는 방법 - Google Patents

웹 페이지에서 자동으로 사용자 식별 객체 획득하는 방법 Download PDF

Info

Publication number
KR102570477B1
KR102570477B1 KR1020200184552A KR20200184552A KR102570477B1 KR 102570477 B1 KR102570477 B1 KR 102570477B1 KR 1020200184552 A KR1020200184552 A KR 1020200184552A KR 20200184552 A KR20200184552 A KR 20200184552A KR 102570477 B1 KR102570477 B1 KR 102570477B1
Authority
KR
South Korea
Prior art keywords
dome
web page
classifier
learning
dom
Prior art date
Application number
KR1020200184552A
Other languages
English (en)
Other versions
KR20220093637A (ko
Inventor
정진우
이용재
채소영
Original Assignee
주식회사 에스투더블유
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 에스투더블유 filed Critical 주식회사 에스투더블유
Priority to KR1020200184552A priority Critical patent/KR102570477B1/ko
Publication of KR20220093637A publication Critical patent/KR20220093637A/ko
Application granted granted Critical
Publication of KR102570477B1 publication Critical patent/KR102570477B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/906Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • G06F40/117Tagging; Marking up; Designating a block; Setting of attributes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/137Hierarchical processing, e.g. outlines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

웹 페이지의 객체 식별 방법이 개시된다. 본 명세서의 일 실시예에 따른 웹 페이지의 객체 식별 방법은, 특정 웹 페이지의 문서 객체 모델(DOM)의 돔 트리 중 특정 돔 객체를 선별하고, 선별된 돔 객체로부터 미리 정해진 기준에 따른 특징값을 추출하여 학습 대상 분류기 모델에 적용할 학습 데이터를 준비할 수 있다. 이에 따라 학습된 분류기를 통해 구조를 모르는 임의의 웹 페이지 내에서 사용자가 원하는 객체를 보다 효율적으로 인식할 수 있다.

Description

웹 페이지에서 자동으로 사용자 식별 객체 획득하는 방법{METHOD FOR OBTAINING AUTOMATICALLY USER IDENTIFICATION OBJECT IN WEB PAGE}
본 명세서는 웹 페이지에서 자동으로 사용자 식별 객체를 획득하는 방법에 관한 것이다.
웹 페이지는 일반적으로 HTML 표준 규격에 따라 구성되지만, 실제 웹 페이지에 게시되는 컨텐츠와 디자인 레이아웃 등은 매우 다양하게 존재할 수 있다. 따라서, 웹 페이지에 제공되는 다양한 컨텐츠 중 특정 주제를 갖는 컨텐츠 또한 특정한 표준 규격에 맞추어 게시되는 것이 아니라, 위치, 모양 등 제 각각의 형태로 게재되는 것이 일반적이다.
따라서, 다양한 구조를 갖는 복수의 웹 페이지 내에서 특정 아이템을 자동으로 파악하기 위해서는, 자동 식별을 위한 통일된 표준 규격에 대한 필요성이 존재하지만, 특정 아이템의 인식을 위해 HTML와 유사한 표준 규격을 제정하기는 현실적으로 어려운 실정이다. 또한, 특정 아이템의 효율적 식별을 위한 명시적인 규칙을 만들어서 직접 관리하는 것은 매우 비효율적인 방법이다. 이에 따라, 웹 페이지에서 사용자가 원하는 객체를 보다 효율적으로 획득하는 방법이 필요하다.
본 명세서는 전술한 문제점을 해결하기 위한 것으로서, 특정 컨텐츠 또는 객체가 가지는 구조적, 형태적 공통 특징에 기초하여 웹 페이지의 객체 식별 방법을 제공하는 것을 목적으로 한다.
또한, 본 명세서는 웹 페이지의 HTML 문서의 각 요소를 객체화하여, HMTL 태그를 자동으로 제어함으로써, 웹 페이지 내에서 컨텐츠를 게시한 사용자를 보다 효율적으로 식별할 수 있는 웹 페이지의 객체 식별 방법을 제공하는 것을 목적으로 한다.
또한, 본 명세서는 HTML 태그를 동적으로 제어하기 위해 문서 객체 모델(DOM)으로부터 학습데이터를 획득하여, 기계학습 기반의 분류기를 학습시키는 것을 목적으로 한다.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 이하의 발명의 상세한 설명으로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서의 일 실시예에 따른 웹 페이지의 객체 식별 방법은, 웹 페이지의 HTML을 파싱하는 단계; 상기 웹 페이지에 대응하는 문서 객체 모델(DOM)의 돔 트리(DOM Tree)를 생성하는 단계; 상기 돔 트리 중 최하위 노드에 해당하는 적어도 하나의 돔 객체(DOM Object)를 선택하는 단계; 상기 선택된 돔 객체로부터 미리 정해진 기준에 따라 특징값을 추출하는 단계; 및 상기 추출된 특징값 및 레이블을 학습대상 모델에 입력값으로 설정하여 분류기(classifier)를 학습시키는 단계;를 포함하고, 상기 분류기는, 상기 웹 페이지에 포함된 특정 객체를 자동으로 식별하도록 학습된다.
상기 특정 객체는 사용자 식별 객체를 포함할 수 있다.
상기 적어도 하나의 돔 객체를 선택하는 단계는, 상기 돔 트리 중 텍스트(text)를 포함하는 객체를 선택할 수 있다.
상기 미리 정해진 기준은, 상기 선택된 돔 객체에 포함된 텍스트 특징, HTML 태그의 속성 또는 상기 돔 트리내에서 복수의 돔 객체의 계층 구조의 유사성 중 적어도 하나를 포함하고, 상기 특징값을 추출하는 단계는, 상기 적어도 하나의 미리 정해진 기준에 따라 특징 벡터를 생성하는 단계를 포함할 수 있다.
상기 텍스트 특징은, 텍스트의 길이, 특수문자의 포함 여부 또는 띄어쓰기 여부 중 적어도 하나를 포함하고, 상기 텍스트의 특징에 따라 상기 돔 객체가 상기 특정 객체를 표시하는 용도로 사용되는지를 결정하여 상기 특징 벡터가 결정될 수 있다.
상기 HTML 태그는, 클래스(class), href, 사용자 정의(User-defined) 태그 중 적어도 하나를 포함하고, 상기 HTML 태그의 속성이 사용자 식별 정보를 포함하는지 여부에 따라 상기 특정 객체를 표시하는 용도로 사용되는지를 결정하여 상기 특징 벡터가 결정될 수 있다.
상기 복수의 돔 객체의 계층 구조의 유사성은, 상기 돔 트리에서 가장 낮은 공통 조상(lowest common ancestor) 까지의 경로의 길이 및 상기 경로에 위치하는 태그들의 시퀀스가 동일한 경우 상기 계층구조의 유사성이 존재하는 것으로 판단하고, 상기 계층 구조의 유사성에 따라 상기 특징 벡터가 결정될 수 있다.
상기 분류기는, 머신 러닝 기반의 이진 분류기(binary classifier)를 포함할 수 있다.
상기 웹 페이지의 객체 식별 방법은, 상기 학습된 분류기 모델을 메모리에 저장하는 단계;를 더 포함하고, 제1 웹 페이지를 수집하는 단계; 상기 미리 정해진 기준에 따라 상기 제1 웹 페이지에 대하여 상기 특징값을 추출하는 단계; 및 상기 특징값을 상기 학습된 분류기 모델의 입력으로 설정하고, 상기 학습된 분류기 모델의 출력 결과에 따라 상기 특정 객체를 자동 식별하는 단계;를 더 포함할 수 있다.
본 명세서의 다른 실시예에 따른 컴퓨터 프로그램은, 하나 이상의 프로세서에 의해 실행되는 복수의 명령들을 포함하고, 상기 컴퓨터 프로그램은, 웹 페이지의 HTML을 파싱하도록 하는 명령; 상기 웹 페이지에 대응하는 문서 객체 모델(DOM)의 돔 트리(DOM Tree)를 생성하고, 상기 돔 트리 중 최하위 노드에 해당하는 적어도 하나의 돔 객체(DOM Object)를 선택하도록 하는 명령; 상기 선택된 돔 객체에 포함된 텍스트 특징, HTML 태그의 속성 또는 상기 돔 트리내에서 복수의 돔 객체의 계층 구조의 유사성 중 적어도 하나에 기초하여 상기 선택된 돔 객체의 특징 벡터를 생성하도록 하는 명령; 상기 추출된 특징 벡터 및 레이블을 학습대상 모델에 입력값으로 설정하여 분류기(classifier)를 학습시키도록 하는 명령;을 포함하고, 상기 분류기는, 상기 웹 페이지에 포함된 특정 객체를 자동으로 식별하도록 학습된다.
본 명세서 다른 실시예에 따른 장치는, 웹 페이지에서 사용자 식별객체를 자동으로 식별할 수 있도록 하는 학습 데이터를 획득하여 데이터 학습을 제어하는 데이터 학습부; 및 학습된 모델을 저장하는 메모리;를 포함하고, 상기 데이터 학습부는, 웹 페이지의 HTML을 파싱하고,상기 웹 페이지에 대응하는 문서 객체 모델(DOM)의 돔 트리(DOM Tree)를 생성하고, 상기 돔 트리 중 최하위 노드에 해당하는 적어도 하나의 돔 객체(DOM Object)를 선택하고, 미리 정해진 기준에 따라 상기 선택된 돔 객체의 특징 벡터를 추출하는 학습데이터 획득부; 및 상기 추출된 특징 벡터 및 레이블을 학습대상 모델에 입력값으로 설정하여 분류기(classifier)를 학습시키는 모델 학습부;를 포함하고, 상기 분류기는, 상기 웹 페이지에 포함된 상기 사용자 식별 객체를 자동으로 식별하도록 학습된다.
상기 학습데이터 획득부는, 상기 선택된 돔 객체에 포함된 텍스트 특징, HTML 태그의 속성 또는 상기 돔 트리내에서 복수의 돔 객체의 계층 구조의 유사성 중 적어도 하나에 기초하여 상기 특징 벡터를 추출할 수 있다.
본 명세서는 일 실시예에 따른 웹 페이지의 객체 식별 방법은, 특정 컨텐츠 또는 객체가 가지는 구조적, 형태적 공통 특징에 기초하여 웹 페이지 내에서 사용자가 원하는 객체를 보다 효율적으로 식별할 수 있다.
또한, 본 명세서의 일 실시예에 따른 웹 페이지의 객체 식별 방법은 웹 페이지의 HTML 문서의 각 요소를 객체화하여, HMTL 태그를 자동으로 제어함으로써, 웹 페이지 내에서 컨텐츠를 게시한 사용자를 보다 효율적으로 식별할 수 있다.
또한, 본 명세서의 일 실시에에 따르면, HTML 태그를 동적으로 제어하기 위해 문서 객체 모델(DOM)으로부터 학습데이터를 획득하여, 기계학습 기반의 분류기를 학습시킴으로써, 웹 페이지에 컨텐츠를 게시한 사용자를 보다 효율적으로 식별할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 명세서에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 명세서에 대한 실시예를 제공하고, 상세한 설명과 함께 본 명세서의 기술적 특징을 설명한다.
도 1은 본 명세서의 일 실시예에 따른 장치의 블록도이다.
도 2는 본 명세서의 일 실시예에 따른 웹 페이지에서 사용자 식별 객체방법을 구현하기 위한 학습 단계, 데이터 처리 단계를 보다 구체적으로 설명하기 위한 도면이다.
도 3은 본 명세서의 일 실시예에 따른 웹 페이지의 객체 식별 방법의 흐름도이다.
도 4는 본 명세서의 일 실시예에 따라 학습 데이터 획득을 위해 웹 페이지의 HTML 파싱 결과의 예시이다.
도 5는 본 명세서의 일 실시예에 따라 학습 데이터 획득을 위해 생성되는 돔 트리(DOM Tree)을 예시적으로 설명하기 위한 도면이다.
도 6은 본 명세서의 일 실시예에 따라 획득된 학습 데이터에 기초하여 분류기를 학습하는 과정을 설명하기 위한 도면이다.
도 7은 도 3의 S330을 보다 구체적으로 설명하기 위한 흐름도이다.
도 8 내지 도 9는 본 명세서의 일 실시예에 따라 학습 데이터 획득을 위해 DOM 객체를 분석하는 과정을 예시적으로 설명하기 위한 도면들이다.
도 10은 본 명세서의 일 실시예에 따라 분류기 학습을 위해 필요한 DOM 객체의 특징 벡터를 획득하는 과정을 예시적으로 설명하기 위한 도면이다.
본 발명에 관한 이해를 돕기 위해 상세한 설명의 일부로 포함되는, 첨부 도면은 본 발명에 대한 실시예를 제공하고, 상세한 설명과 함께 본 발명의 기술적 특징을 설명한다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다. 또한, 본 명세서에 개시된 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 실시예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1은 본 명세서의 일 실시예에 따른 장치의 블록도이다.
본 명세서에서 개시되는 웹 페이지의 객체 식별 방법은 컴퓨터 장치에서 구현될 수 있다. 상기 컴퓨터 장치는 AI 프로세서(100)와 메모리(150)로 구성될 수 있다. 상기 컴퓨터 장치는 AI 프로세싱을 수행할 수 있는 AI 프로세서(100)를 포함하는 전자 기기 또는 상기 AI 프로세서(100)을 포함하는 서버 등을 포함할 수 있다.
상기 AI 프로세서(100)는 실제 컨텐츠의 개시 방법이 제각각이 복수의 웹 페이지로부터 특정 객체를 자동으로 식별할 수 있도록 하는 학습 모델을 학습시키기 위해 데이터 학습부(100), 학습된 모델을 저장하는 메모리(150), 모델 학습이 종료된 이후, 새롭게 획득되는 웹 페이지에 대하여 학습 모델을 통해 데이터를 처리하는 데이터 처리부(140)를 포함할 수 있다.
상기 컴퓨터 장치는 신경망을 학습할 수 있는 장치로서, 서버, 데스크탑 PC, 노트북 PC, 태블릿 PC 등과 같은 다양한 전자 장치로 구현될 수 있다.
AI 프로세서(100)는 메모리(150)에 저장된 프로그램을 이용하여 모델 학습부(130)를 통해 신경망을 학습할 수 있다. 특히, AI 프로세서(100)는 웹 페이지에 컨텐츠를 게시한 사용자를 인식하기 위한 신경망을 학습할 수 있다.
여기서, 웹 페이지에 컨텐츠를 게시한 사용자를 인식하기 위한 신경망은 인간의 뇌 구조를 컴퓨터 상에서 모의하도록 설계될 수 있으며, 인간의 신경망의 뉴런(neuron)을 모의하는, 가중치를 갖는 복수의 네트워크 노드들을 포함할 수 있다. 복수의 네트워크 모드들은 뉴런이 시냅스(synapse)를 통해 신호를 주고 받는 뉴런의 시냅틱 활동을 모의하도록 각각 연결 관계에 따라 데이터를 주고 받을 수 있다. 여기서 신경망은 신경망 모델에서 발전한 딥러닝 모델을 포함할 수 있다. 딥 러닝 모델에서 복수의 네트워크 노드들은 서로 다른 레이어에 위치하면서 컨볼루션(convolution) 연결 관계에 따라 데이터를 주고 받을 수 있다. 신경망 모델의 예는 심층 신경망(DNN, deep neural networks), 합성곱 신경망(CNN, convolutional deep neural networks), 순환 신경망(RNN, Recurrent Boltzmann Machine), 제한 볼츠만 머신(RBM, Restricted Boltzmann Machine), 심층 신뢰 신경망(DBN, deep belief networks), 심층 Q-네트워크(Deep Q-Network)와 같은 다양한 딥 러닝 기법들을 포함하며, 컴퓨터비젼, 음성인식, 자연어처리, 음성/신호처리 등의 분야에 적용될 수 있다.
한편, 전술한 바와 같은 기능을 수행하는 프로세서는 범용 프로세서(예를 들어, CPU)일 수 있으나, 인공지능 학습을 위한 AI 전용 프로세서(예를 들어, GPU)일 수 있다.
메모리(150)는 AI 프로세서(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 메모리(150)는 비 휘발성 메모리, 휘발성 메모리, 플래시 메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SDD) 등으로 구현할 수 있다. 메모리(150)는 AI 프로세서(100)에 의해 액세스되며, AI 프로세서(100)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 또한, 메모리(150)는 본 명세서의 일 실시예에 따른 데이터 분류/인식을 위한 학습 알고리즘을 통해 생성된 신경망 모델(예를 들어, 인공신경망 모델, 분류 모델 등)을 저장할 수 있다.
한편, AI 프로세서(100)는 데이터 분류/인식을 위한 신경망을 학습하는 데이터 학습부(120)를 포함할 수 있다.
데이터 학습부(110)는 데이터 분류/인식을 판단하기 위하여 어떤 학습 데이터를 이용할지, 학습 데이터를 이용하여 데이터를 어떻게 분류하고 인식할지에 관한 기준을 학습할 수 있다. 데이터 학습부(110)는 학습에 이용될 학습 데이터를 획득하고, 획득된 학습데이터를 딥러닝 모델에 적용함으로써, 딥러닝 모델을 학습할 수 있다.
데이터 학습부(110)는 적어도 하나의 하드웨어 칩 형태로 제작되어 컴퓨터 장치 및/또는 AI 프로세서(100)에 탑재될 수 있다. 예를 들어, 데이터 학습부(110)는 인공지능(AI)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 범용 프로세서(CPU) 또는 그래픽 전용 프로세서(GPU)의 일부로 제작되어 컴퓨터 장치 및/또는 AI 프로세서(100)에 탑재될 수도 있다.
또한, 데이터 학습부(110)는 소프트웨어 모듈로 구현될 수 있다. 소프트웨어 모듈(또는 인스트럭션(instruction)을 포함하는 프로그램 모듈)로 구현되는 경우, 소프트웨어 모듈은 컴퓨터로 읽을 수 있는 판독 가능한 비일시적 판독 가능 기록 매체(non-transitory computer readable media)에 저장될 수 있다. 이 경우, 적어도 하나의 소프트웨어 모듈은 OS(Operating System)에 의해 제공되거나, 애플리케이션에 의해 제공될 수 있다.
데이터 학습부(110)는 학습 데이터 획득부(120) 및 모델 학습부(130)를 포함할 수 있다.
학습 데이터 획득부(120)는 데이터를 분류하고 인식하기 위한 신경망 모델에 필요한 학습 데이터를 획득할 수 있다. 예를 들어, 학습 데이터 획득부(120)는 학습 데이터로서, 신경망 모델에 입력하기 위한 DOM 객체의 특징 벡터 및/또는 라벨링 데이터(레이블)를 획득할 수 있다.
모델 학습부(130)는 상기 획득된 학습 데이터를 이용하여, 신경망 모델이 소정의 데이터를 어떻게 분류할지에 관한 판단 기준을 가지도록 학습할 수 있다. 이 때 모델 학습부(130)는 학습 데이터 중 적어도 일부를 판단 기준으로 이용하는 지도 학습(supervised learning)을 통하여, 신경망 모델을 학습시킬 수 있다. 또는 모델 학습부(130)는 지도 없이 학습 데이터를 이용하여 스스로 학습함으로써, 판단 기준을 발견하는 비지도 학습(unsupervised learning)을 통해 신경망 모델을 학습시킬 수 있다. 또한, 모델 학습부(24)는 학습에 따른 상황 판단의 결과가 올바른지에 대한 피드백을 이용하여 강화 학습(reinforcement learning)을 통하여, 신경망 모델을 학습시킬 수 있다.또한, 모델 학습부(130)는 오류 역전파법(error back-propagation) 또는 경사 하강법(gradient decent)을 포함하는 학습 알고리즘을 이용하여 신경망 모델을 학습시킬 수 있다.
신경망 모델이 학습되면, 모델 학습부(130)는 학습된 신경망 모델을 메모리(150)에 저장할 수 있다. 모델 학습부(130)는 학습된 신경망 모델을 AI 장치와 유선 또는 무선 네트워크로 연결된 서버의 메모리에 저장할 수도 있다.
데이터 학습부(110)는 인식 모델의 분석 결과를 향상시키거나, 인식 모델의 생성에 필요한 리소스 또는 시간을 절약하기 위해 학습 데이터 전처리부(미도시) 및 학습 데이터 선택부(미도시)를 더 포함할 수도 있다.
학습 데이터 전처리부는 획득된 데이터가 상황 판단을 위한 학습에 이용될 수 있도록, 획득된 데이터를 전처리할 수 있다. 예를 들어, 학습 데이터 전처리부는, 모델 학습부(130)가 웹 페이지에서 사용자 식별 객체를 인식하기 위한 학습을 위하여 웹 페이지의 HTML을 파싱하고, HTML 문서 내의 내용을 정의(모델 구성)하고 각 요소에 접근하는 방법을 명시하는 문서 객체 모델(DOM)의 계층적 구조를 확인할 수 있다.
또한, 학습 데이터 선택부는, 학습 데이터 획득부(120)에서 획득된 학습 데이터 또는 전처리부에서 전처리된 학습 데이터 중 학습에 필요한 데이터를 선택할 수 있다.선택된 학습 데이터는 모델 학습부(130)에 제공될 수 있다. 예를 들어, 학습 데이터 선택부는, 상기 돔 트리(DOM Tree) 중 특정 돔 객체를 선택함으로써, 원하는 객체에 대한 데이터만을 학습 데이터로 선택할 수 있다. 상기 돔 트리를 구성하는 복수의 돔 객체 중 특정 돔 객체를 선택하는 과정은 도 5를 통해 보다 구체적으로 설명한다.
상기 학습 데이터 전처리부 및/또는 학습 데이터 선택부의 동작은 도 1에 도시된 학습 데이터 획득부(120)와 구별되는 프로세싱으로 진행될 수도 있지만, 학습 데이터 획득부(120)에 통합되어 구현될 수도 있다.
또한, 데이터 학습부(110)는 신경망 모델의 분석 결과를 향상시키기 위하여 모델 평가부(미도시)를 더 포함할 수도 있다.
모델 평가부는, 신경망 모델에 평가 데이터를 입력하고, 평가 데이터로부터 출력되는 분석 결과가 소정 기준을 만족하지 못하는 경우, 모델 학습부(130)로 하여금 다시 학습하도록 할 수 있다. 이 경우, 평가 데이터는 인식 모델을 평가하기 위한 기 정의된 데이터일 수 있다. 일 예로, 모델 평가부는 평가 데이터에 대한 학습된 인식 모델의 분석 결과 중, 분석 결과가 정확하지 않은 평가 데이터의 개수 또는 비율이 미리 설정되 임계치를 초과하는 경우, 소정 기준을 만족하지 못한 것으로 평가할 수 있다. 본 명세서의 일 실시예에 따르면, DOM 객체로부터 추출된 특징 벡터를 학습 데이터로 정의하여 학습 대상 분류기 모델에 입력한 결과, 상기 DOM 객체에 대응되는 레이블과 모델 출력값을 비교한 결과에 따라 학습 모델을 평가할 수 있다.
데이터 처리부(140)는 입력 데이터를 메모리에 저장된 학습 모델(분류기)에 적용함으로써, 특정 웹 페이지에 포함된 사용자 식별 객체를 자동으로 인식하도록 한다.
한편, 도시하지는 않았지만, 도 1에 도시된 컴퓨터 장치는 통신부(미도시)를 더 포함할 수 있다. 통신부는 AI 프로세서(100)에 의한 AI 프로세싱 결과를 외부 전자 기기(예를 들어, 네트워크 서버 등)로 전송할 수 있다.
한편, 전술한 분류기 학습 과정은 클라이언트 단말과 구별되는 서버에서 구현될 수도 있다. 예를 들어, 클라이언트 단말을 통해서 학습 대상이 되는 복수의 웹 페이지 정보만을 수집하고, 웹 페이지 정보는 상기 서버로 전달될 수 있다. 서버에서 상기 웹 페이지 정보에 기초하여 전술한 학습 과정을 통해 학습 모델을 생성할 수 있다. 또한, 학습 모델 구축이 완료된 이후에도, 클라이언트 단말에서 수집되는 새로운 웹 페이지 정보가 서버로 전달된 후, 서버에서 기 학습된 분류기 모델에 적용한 결과만을 클라이언트 단말에 전송할 수도 있다.
한편, 상기 클라이언트 단말에서는 학습 데이터 구축을 위한 전처리 과정 예를 들어, 웹 페이지의 HTML 파싱 동작, 돔 트리 생성 동작 등 학습 데이터 구축을 위한 적어도 일부의 동작만을 수행하고, 서버에서 모델 학습 동작을 수행할 수 있다. 경우에 따라서는 학습 모델 구축에 따른 리소스 분배를 위해 상기 클라이언트 단말과 서버 사이에 엣지 컴퓨팅 환경을 통해 상기 학습에 필요한 적어도 일부의 동작이 함께 실행될 수 있다.
한편, 도 1에 도시된 컴퓨팅 장치는 AI 프로세서(100)와 메모리(150), 통신부(미도시)등으로 기능적으로 구분하여 설명하였지만, 전술한 구성요소들이 하나의 모듈로 통합되어 AI 모듈로 호칭될 수도 있음을 밝혀둔다.
도 2는 본 명세서의 일 실시예에 따른 웹 페이지에서 사용자 식별 객체방법을 구현하기 위한 학습 단계, 데이터 처리 단계를 보다 구체적으로 설명하기 위한 도면이다.
도 2를 참조하면, 본 명세서의 일 실시예에 따른 웹 페이지의 객체 식별 방법은 크게 (a) 학습 단계와, 학습이 완료된 후 예측 단계로 구분될 수 있다.
학습 단계(a)는, 지도 학습을 위해 레이블(201)과 입력 데이터(205)가 마련될 수 있다. 상기 입력 데이터(205)는 웹 페이지 정보일 수 있다. 보다 구체적으로는 AI 프로세서(도 1 참조, 이하 프로세서라 함)는 학습 데이터 획득부(도 1의 120)를 통해 학습 데이터를 획득할 수 있다. 보다 구체적으로 학습 데이터 획득부(120)는 HTML 파서(121), 돔 객체 추출부(123) 및 특징 추출부(125)를 포함할 수 있다.
HTML 파서(121)는 특정 웹페이지의 URL 주소를 읽어들이고, HTML 파서를 통해 response의 content 영역을 HTML로 파싱한다. 돔 객체 추출부(123)는 파싱된 HTML을 돔 객체로 저장할 수 있다. 상기 HTML 파서는 Python BeautifulSoup이 적용될 수 있으나, 본 명세서는 이에 한정되는 것은 아니다.
문서 객체 모델(The Document Object Model, 이하 DOM)은 HTML, XML 문서의 프로그래밍 인터페이스이다. DOM은 문서의 구조화된 표현(structured representation)을 제공하며 프로그래밍 언어가 DOM 구조에 접근할 수 있는 방법을 제공하여 그들이 문서 구조, 스타일, 내용 등을 변경할 수 있도록 지원한다. DOM은 구조화된 modes와 property, method를 갖고 있는 객체로 문서를 표현한다. DOM은 웹 페이지를 스크립트 또는 프로그래밍 언어들에서 사용될 수 있게 연결시켜주는 역할을 담당한다.
웹 페이지는 일종의 문서(document)이다. 문서는 웹 브라우저를 통해 그 내용이 해석되어 웹 브라우저 화면에 나타나거나, HTML 소스 자체로 나타나기도 한다. 동일한 문서를 사용하여 다른 형태로 나타날 수 있다. DOM은 동일한 문서를 표현하고, 저장하고 조작하는 방법을 제공한다. DOM은 웹 페이지의 객체 지향 표현이며, 자바스크립트와 같은 스크립팅 언어를 이용해 DOM을 수정할 수 있다.
W3C DOM, WHATWG DOM 표준은 대부분의 브라우저에서 DOM을 구현하는 기준이다. 많은 브라우저들이 표준 규약에서 제공하는 기능 외에도 추가적인 기능을 제공하기 때문에 사용자가 작성한 문서들이 각각 다른 DOM이 적용된 다양한 브라우저 환경에서 동작할 수 있다.
한편, 돔 객체 추출부(123)는 HTML 태그의 포함관계에 따라 돔 객체들을 트리 구조로 만들 수 있다. 돔 트리의 각 브랜치는 노드로 끝나며, 각 노드는 객체(object)를 갖는다.
본 명세서의 일 실시예에 따르면 생성된 돔 트리에 포함된 돔 객체 중 텍스트가 포함된 적어도 하나의 객체가 학습 데이터로 선택될 수 있다. 상기 선택된 적어도 하나의 객체 중 적어도 하나는 사용자 식별 정보가 포함된 적어도 하나의 돔 객체일 수 있다. 그리고 특징 추출기(125, 210)는 선택된 돔 객체에서 학습 모델의 입력값으로 정의할 특징값을 추출할 수 있다. 상기 특징값은 웹 페이지의 특정 영역이 사용자 이름 등 사용자를 식별할 수 있는 정보를 포함하는지 여부에 따라 결정될 수 있다.
데이터 학습부(110)는 추출된 특징값을 특징 벡터(220)로 표현할 수 있다.
모델 학습부(130)는 상기 특징 벡터(220)와 미리 준비된 레이블(201)을 학습 대상 분류기 모델(230)에 입력함으로써, 머신 러닝 알고리즘을 통해 학습할 수 있다.
학습이 완료된 분류기 모델(260)은 메모리에 저장될 수 있으며, 새로운 웹 페이지(240)를 입력 데이터로 지정하는 경우, 특징 추출기(210)는 상기 새로운 웹 페이지 내 각 돔객체로부터 특징 벡터(220)를 추출하여, 학습된 분류기 모델(260)에 입력으로 설정된다. 학습된 분류기 모델(260)의 출력 결과에 따라 상기 새로운 웹 페이지 내 각 돔객체에 사용자 식별 객체가 포함되어 있는지 여부를 판단할 수 있다. 본 명세서의 실시예에 따르면 학습된 분류기 모델(260)의 출력은 True, False 중 어느 하나의 결과(270)를 출력할 수 있다.
이하, 도 3 내지 도 5를 참조하여 학습 데이터에 대한 전처리 과정을 보다 구체적으로 설명한다.
도 3은 본 명세서의 일 실시예에 따른 웹 페이지의 객체 식별 방법의 흐름도이다. 도 3에 도시된 방법은 도 1 및/또는 2에 도시된 컴퓨터 장치를 통해 구현될 수 있다.
도 3을 참조하면, 프로세서는 분류기 모델을 학습하는데 이용될 웹 페이지의 HTML을 파싱할 수 있다(300). 프로세서는 HTML의 문서 객체 모델(DOM)을 구성하고, 돔 트리를 구성하는 돔 객체들 간의 계층 구조를 확인한다(310).
도 4를 참조하면, 상기 학습에 이용될 웹 페이지는 서로 다른 사용자가 컨텐츠를 업로드하거나, 글을 게시할 수 있는 온라인 포럼 형태의 웹 페이지일 수 있다. 예를 들어, 본 명세서는 서로 다른 웹 페이지에 동일한 사용자가 포럼을 생성하거나, 글을 게시할 경우 사용자별로 게시글을 추적하거나, 교차분석이 필요한 경우에 구조를 모르는 임의의 웹 페이지에서 사용자 식별 객체를 자동으로 인식할 수 있는 이점이 있다. 도 4는 서로 다른 ID를 갖는 복수의 사용자가 서로 다른 글을 게시하거나, 서로 다른 모임을 생성할 수 있도록 구성된 인터페이스를 개시한다. 프로세서(300)는 상기 웹 페이지의 HTML을 파싱하고, 파싱된 HTML의 돔 트리를 구성한다.
도 5를 참조하면, 돔 트리의 모든 노드는 상호 계층적 관계, 예를 들어, 최상위 루트 노드(root node), 부모 노드(parent node), 조상 노드(ancestor node), 자식 노드(child node), 자손 노드(descendant node), 형제 노드(sibling node)로 계층적 관계가 정의될 수 있으며, 돔 트리에서 노드는 문서 노드(Document mode), 요소 노드(element node), 속성 노드(Attribute node), 텍스트 노드(text node)의 네가지 종류로 구성될 수 있다.
돔 트리에서 최상위에 존재하는 루트 노드는 문서 노드(Document node)로서, 웹 페이지(HTML) 전체를 의미한다. 최상위 노드이므로 부모, 조상 노드는 존재하지 않는다. 그리고, 모든 HTML의 요소(element)는 돔 트리에서 요소 노드(element node, 예를 들어, head, title, body, main, h1)에 해당된다. 그리고 요소 노드는 돔 트리 내에서 유일하게 속성 노드(예를 들어, class)를 가질 수 있다. 그리고, HTML Element에 지정된 속성은 돔 트리에서 속성 노드(Attribute node에 해당된다. 해당 속성이 지정된 요소 노드의 자식 노드 개념이 아닌 해당 요소 노드의 일부에 해당될 수 있다. 그리고, HTML Element 내의 모든 텍스트 요소는 돔 트리에서 텍스트 노드에 해당되며 돔 트리 내에서 최하위에 존재하는 것이 일반적이다.
다시 도 3을 참조하면, 프로세서는 돔 트리 내에서 학습 대상 분류기에 적용되는 학습 데이터를 획득하기 위하여 특정 돔 객체를 선택할 수 있다(S320)
본 명세서의 일 실시예는 돔 트리에 포함된 텍스트의 특성과 돔 객체에 포함된 태그의 속성에 기초하여 사용자 식별 정보가 포함되어 있는지를 판단할 수 있다. 상기 특정 돔 객체는 전술한 바와 같이, 사용자 식별 정보가 포함되어 있는 것으로 추정할 수 있는 돔 객체로서, 텍스트 노드 또는 속성 노드가 이에 해당될 수 있다. 상기 사용자 식별정보는 사용자를 식별하기 위한 태그가 존재할 수 있다. 예를 들어, 사용자를 가리키기 위해서는 user, author, poster, member, name, id, profile 등의 태그가 이용될 수 있다. 또한, 상기 태그와 함께 직접적으로 사용자를 지칭하는 사용자 이름, 별명, 아이디 등의 텍스트가 포함될 수 있다.
따라서, 프로세서는 돔 트리에서 최하위 돔 객체들을 선택할 수 있다. 예를 들어, 프로세서는 도 5의 돔 트리에서 최하위 노드에 대응되는 복수의 돔 객체(521,522,523,524)를 선택할 수 있다.
프로세서는 선택된 돔 객체로부터 특징값을 추출하고(S330), 추출된 특징값 및 레이블에 기초하여 분류기를 학습시킬 수 있다(S340).
도 6은 본 명세서의 일 실시예에 따라 획득된 학습 데이터에 기초하여 분류기를 학습하는 과정을 설명하기 위한 도면이다.
도 6을 참조하면, 프로세서는 돔 트리에서 선택된 복수의 돔 객체 각각에 대한 특징을 추출한다. 상기 돔 객체의 특징은 특징 벡터로 표현될 수 있다. 프로세서는 추출된 각 돔 객체의 특징을 각 돔 객체에 대응하는 레이블(True 또는 False)과 함께 기계학습 기반의 이진 분류기 모델에 입력값으로 설정함으로써, 분류기를 학습시킬 수 있다. 전술한 이진 분류기는 예시이며 본 명세서는 이에 한정되지 않고 웹 페이지에 특정 객체 인식이 필요한 어떠한 분류 방식도 함께 적용될 수 있음은 물론이다.
도 7은 도 3의 S330을 보다 구체적으로 설명하기 위한 흐름도이다. 도 8 내지 도 9는 본 명세서의 일 실시예에 따라 학습 데이터 획득을 위해 DOM 객체를 분석하는 과정을 예시적으로 설명하기 위한 도면들이다. 이하, 도 7 내지 도 9를 함께 참고하여 설명한다.
전술한 바와 같이, 본 명세서의 일 실시예는 학습 데이터를 선별하는 과정에서 돔 트리에서 텍스트 특성 및 HTML 태그의 속성을 기준으로 할 수 있다.
도 7을 참조하면, 프로세서는 돔 객체를 분석하여(S700), 각 돔 객체의 특징 벡터를 구성한다(710). 그런 후, 특징 벡터 및 레이블을 학습기에 입력하여 학습시킬 수 있다(S720).
프로세서는 돔 객체에 포함된 텍스트의 특징을 분석할 수 있다(S701). 예를 들어, 돔 객체 내에 존재하는 텍스트의 특성은 사용자 식별 정보의 특성으로서, 문자열의 길이가 일정 글자 수 이상은 사용되지 않는 점, 아이디 등에 특수문자 등이 사용되지 않는 점, 아이디의 경우 띄어쓰기가 일반적으로 적용되지 않는 점 등을 고려하여, 프로세서는 돔 객체 내의 텍스트의 문자열 길이, 특수문자 포함 여부, 띄어쓰기 여부 등을 확인할 수 있다.
또한, 프로세서는 HTML 태그의 속성을 분석할 수 있다(S703). 상기 HTML 태그는, 클래스(class), href, 사용자 정의(User-defined) 태그 중 적어도 하나를 포함하고, 상기 HTML 태그의 속성이 사용자 식별 정보를 포함하는지 여부에 따라 상기 특정 객체를 표시하는 용도로 사용되는지를 결정할 수 있다.
또한, 프로세서는 사용자가 정의한 속성을 분석할 수 있다(S703). 상기 사용자가 정의한 속성 id 태그에 대응하는 텍스트 정보를 포함할 수 있다.
또한, 프로세서는 돔 객체의 계층구조를 분석할 수 있다(S707). 돔 객체의 계층 구조가 상기 돔 트리에서 가장 낮은 공통 조상(lowest common ancestor) 까지의 경로의 길이 및 상기 경로에 위치하는 태그들의 시퀀스가 동일한 경우 상기 계층구조의 유사성이 존재하는 것으로 판단할 수 있다.
도 8을 참조하면, 웹 페이지 화면상에 특정 영역에 대응하는 HTML 중 사용자 아이디(OB1)에 대응하는 돔 객체(810)를 분석한다. 프로세서는 HTML 태그 중 하이퍼링크의 속성에 대응되는 href의 텍스트 노드 중"member"(820)가 사용자를 인식할 수 있는 텍스트로 판단하고, 특징 벡터를 추출할 수 있다. 도 10을 참조하면, 돔 객체 분석을 통해 추출되는 특징 벡터는 이진 분류기의 결과에 대응되도록 True(0), False(1)의 형태로 구성될 수 있다. HTML 태그 중 href 태그를 분석한 결과 추출되는 벡터는 "0"의 값을 가진다.
그리고, 프로세서는 HTML 태그 중 Class의 속성이 "username"(830)이 발견됨에 따라 마찬가지로 돔 객체 중 class 속성에 따른 특징 벡터로 "0"을 추출할 수 있다.
또한, 프로세서는 사용자가 정의한 속성 "data-user-id"(840) 내에 "user, id" 등 사용자 식별 가능한 키워드가 포함된 경우, 마찬가지로 돔 객체 중 사용자가 정의한 속성에 따른 특징 벡터로 "0"을 추출할 수 있다.
또한, 프로세서는 돔 트리 중 최하위 노드에 위치하는 텍스트 노드에 포함되는 문자가 "member"(850)로서, 사용자 식별 가능한 키워드가 포함된 경우 텍스트 노드에 대응하는 특징 벡터를 "0"으로 추출할 수 있다. 또한, 프로세서는 텍스트 노드 중 "Pofecker"(841)의 문자열의 길이가 미리 정해진 문자 개수를 초과하지 않거나, 특수문자 없이 숫자 또는 문자로 이루어진 경우, 띄어쓰기가 없는 경우 특징 벡터로 "0"을 추출할 수 있다.
한편, 프로세서는 돔 트리 내에서 학습 데이터로 선택된 돔 객체들이 상기 돔 트리 내에서 형제(sibling) 돔 객체에 대응되는 것으로 판단한 경우, 각 돔 객체들의 특징 벡터를 "0"으로 추출할 수 있다.
도 9를 참조하면, 돔 트리에서 돔 객체1(900a), 돔 객체2(900b), 돔 객체3(900c)는 각각 1차 상위 노드(910a, 910b, 910c)를 가진다. 또한, 1차 상위 노드 각각은 2차 상위 노드(920a, 920b, 920c)를 가지며, 2차 상위 노드 각각은 동일한 3차 상위 노드(930)를 가진다. 이 경우, 프로세서는 돔 객체 1, 2, 3을 형제(sibling) 관계로 파악할 수 있다. 형제 돔 객체 관계는, 동일한 종류의 HTML 태그 및 속성값을 가지는 것이 일반적이며, 나아가 가장 낮은 공통 조상까지의 경로 길이 및 경로상의 태그 시퀀스가 동일할 수 있다.
도 8 내지 도 9에서 예시한 돔 객체 분석과정에 따르면, 프로세서는 도 10에 도시된 바와 같이, 텍스트 길이, 특수문자 포함여부, 띄어쓰기 여부, HTML 속성(id, href, class), 형제 노드의 존재 여부를 돔 객체의 특징 요소로 구성하고, 각 특징 요소들의 특징값을 추출하여 연결함으로써, 최종 특징 벡터를 추출할 수 있다.
본 명세서의 경우, 도 10에 도시된 특징 벡터는 예시적인 것으로서 특징 벡터를 구성하는 특징 요소의 순서, 특징 요소의 종류가 다양하게 변형되어 구성될 수 있음은 물론이다.
한편, 본 명세서의 일 실시예에 의하면, 도 2에 도시된 바와 같이 머신 러닝 알고리즘 기반으로 분류기를 학습하는 과정에서, 학습 데이터를 돔 객체에서 추출된 적어도 하나의 특징 요소에 대응하는 특징 벡터를 추출한 결과를 학습 데이터로 이용할 수 있지만, 본 명세서는 이에 한정되지 않는다. 예를 들어, 돔 트리에서 텍스트 노드 또는 속성 노드에 대응하는 돔 객체를 선택한 후, 선택한 돔 객체에 포함된 텍스트를 인코딩한 결과를 학습 대상 분류기의 입력으로 설정할 수도 있다. 다만, 이 경우는 전술한 예들에 비하여 학습 데이터의 양이 많아지며 그에 따른 레이블의 수도 증가하게 된다.
이에 반해, 학습 대상 분류기에 학습데이터를 입력하기 전에, 1차적으로 돔 객체로부터 특징 벡터를 추출한 결과를 학습 데이터로 설정하는 경우, 학습 모델의 정확성이 향상될 수 있다. 나아가 학습 데이터 자체가 1차 적으로 특징 추출로 인한 전처리 과정이 수행된 데이터이므로 최종 분류기 모델 학습에 필요한 학습 데이터량, 레이블의 수가 줄어들 수 있는 이점이 있다.
본 명세서의 일 실시예들에 의하면, 복수의 사용자가 게시글을 등록하는 웹 페이지 내에서 특정 사용자가 작성한 글을 보다 효율적으로 추적할 수 있다. 또한, 교차 분석을 통해 동일한 사용자에 의해 서로 다른 웹 페이지에 게시글의 등록 여부를 보다 용이하게 확인할 수 있다.
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.

Claims (12)

  1. 컴퓨팅 장치에 의해 수행되는 웹 페이지의 객체 식별 방법에 있어서,
    서로 다른 사용자가 컨텐츠를 업로드하거나 글을 게시할 수 있는 온라인 포럼 형태의 웹 페이지의 HTML을 파싱하는 단계;
    상기 웹 페이지에 대응하는 문서 객체 모델(DOM)의 돔 트리(DOM Tree)를 생성하는 단계;
    상기 돔 트리 중 최하위 노드에 해당하는 적어도 하나의 돔 객체(DOM Object)를 선택하는 단계;
    상기 선택된 적어도 하나의 돔 객체로부터 미리 정해진 복수의 기준에 따라 복수의 특징값을 각각 추출하는 단계 -상기 복수의 기준은 사용자를 식별할 수 있는 정보인 사용자 식별 정보를 포함하는지 여부에 따라 결정됨-;
    상기 적어도 하나의 돔 객체마다 추출된 상기 복수의 특징값을 특정 순서에 따라 조합하여, 상기 선택된 적어도 하나의 돔 객체마다 특징 벡터를 생성하는 단계; 및
    상기 생성된 특징 벡터 및 레이블을 분류기의 입력값으로 설정하여 상기 분류기(classifier)를 학습시키는 단계를 포함하고,
    상기 분류기는, 상기 웹 페이지에 포함된 사용자 식별 객체를 자동으로 식별하도록 학습되는 것을 특징으로 하는 웹 페이지의 객체 식별 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 적어도 하나의 돔 객체를 선택하는 단계는,
    상기 돔 트리 중 텍스트(text)를 포함하는 객체를 선택하는 것을 특징으로 하는 웹 페이지의 객체 식별 방법.
  4. 제 1 항에 있어서,
    상기 복수의 기준은,
    상기 선택된 적어도 하나의 돔 객체에 포함된 텍스트 특징, HTML 태그의 속성 및 상기 돔 트리 내에서 복수의 돔 객체의 계층 구조의 유사성 중 적어도 하나를 포함하는 웹 페이지의 객체 식별 방법.
  5. 제 4 항에 있어서,
    상기 텍스트 특징은,
    텍스트의 길이, 특수문자의 포함 여부 및 띄어쓰기 여부 중 적어도 하나를 포함하고,
    상기 텍스트의 길이가 미리 정해진 문자 개수를 초과하지 않은 경우, 상기 특수문자 없이 숫자 또는 문자로 이루어진 경우, 및 상기 띄어쓰기가 없는 경우 각각에 대하여, 상기 특징값으로 "0"이 추출되고,
    그렇지 않은 경우 각각에 대하여, 상기 특징값으로 "1"이 추출되는 것을 특징으로 하는 웹 페이지의 객체 식별 방법.
  6. 제 4 항에 있어서,
    상기 HTML 태그는,
    클래스(class) 태그, href 태그 및 사용자 정의(User-defined) 태그 중 적어도 하나를 포함하고,
    상기 HTML 태그의 속성 내에 상기 사용자 식별 정보로서, 사용자 식별 가능한 키워드가 포함된 경우, 상기 특징값으로 "0"이 추출되고,
    그렇지 않은 경우, 상기 특징값으로 "1"이 추출되는 것을 특징으로 하는 웹 페이지의 객체 식별 방법.
  7. 제 4 항에 있어서,
    상기 복수의 돔 객체의 계층 구조의 유사성은,
    상기 돔 트리에서 가장 낮은 공통 조상(lowest common ancestor) 까지의 경로의 길이 및 상기 경로에 위치하는 태그들의 시퀀스가 동일한 경우 상기 계층구조의 유사성이 존재하는 것으로 판단하고,
    상기 계층 구조의 유사성이 존재하는 것으로 판단된 경우, 상기 특징값으로는 "0"이 추출되고, 그렇지 않은 경우, 상기 특징값으로 "1"이 추출되는 것을 특징으로 하는 웹 페이지의 객체 식별 방법.
  8. 제 1 항에 있어서,
    상기 분류기는,
    머신 러닝 기반의 이진 분류기(binary classifier)인 것을 특징으로 하는 웹 페이지의 객체 식별 방법.
  9. 제 1 항에 있어서,
    상기 학습된 분류기를 메모리에 저장하는 단계;
    온라인 포럼 형태의 제1 웹 페이지를 수집하는 단계;
    상기 제1 웹 페이지에 포함된 하나 이상의 돔 객체로부터 상기 미리 정해진 복수의 기준에 따라 상기 복수의 특징값을 각각 추출하는 단계;
    상기 하나 이상의 돔 객체마다 추출된 상기 복수의 특징값을 상기 특정 순서에 따라 조합하여, 상기 하나 이상의 돔 객체마다 특징 벡터를 생성하는 단계; 및
    상기 특징 벡터를 상기 학습된 분류기의 입력으로 설정하고, 상기 학습된 분류기의 출력 결과에 따라 상기 하나 이상의 돔 객체로부터 상기 사용자 식별 객체를 자동으로 식별하는 단계;
    를 더 포함하는 것을 특징으로 하는 웹 페이지의 객체 식별 방법.
  10. 하나 이상의 프로세서에 의해 실행되는 복수의 명령들을 포함하는, 비일시적 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램으로서,
    상기 컴퓨터 프로그램은,
    서로 다른 사용자가 컨텐츠를 업로드하거나 글을 게시할 수 있는 온라인 포럼 형태의 웹 페이지의 HTML을 파싱하도록 하는 명령;
    상기 웹 페이지에 대응하는 문서 객체 모델(DOM)의 돔 트리(DOM Tree)를 생성하고, 상기 돔 트리 중 최하위 노드에 해당하는 적어도 하나의 돔 객체(DOM Object)를 선택하도록 하는 명령;
    상기 선택된 적어도 하나의 돔 객체로부터 미리 정해진 복수의 기준에 따라 복수의 특징값을 각각 추출하도록 하는 명령 -상기 복수의 기준은 사용자를 식별할 수 있는 정보인 사용자 식별 정보를 포함하는지 여부에 따라 결정됨-;
    상기 적어도 하나의 돔 객체마다 추출된 상기 복수의 특징값을 특정 순서에 따라 조합하여, 상기 선택된 적어도 하나의 돔 객체마다 특징 벡터를 생성하도록 하는 명령;
    상기 생성된 특징 벡터 및 레이블을 분류기의 입력값으로 설정하여 상기 분류기(classifier)를 학습시키도록 하는 명령;을 포함하고,
    상기 분류기는, 상기 웹 페이지에 포함된 사용자 식별 객체를 자동으로 식별하도록 학습되는 것을 특징으로 하는 비일시적 컴퓨터-판독가능 매체에 저장된 컴퓨터 프로그램.
  11. 서로 다른 사용자가 컨텐츠를 업로드하거나 글을 게시할 수 있는 온라인 포럼 형태의 웹 페이지에서 사용자 식별 객체를 자동으로 식별할 수 있도록 하는 학습 데이터를 획득하여 데이터 학습을 제어하는 데이터 학습부; 및
    학습된 모델을 저장하는 메모리;를 포함하고,
    상기 데이터 학습부는,
    상기 웹 페이지의 HTML을 파싱하고, 상기 웹 페이지에 대응하는 문서 객체 모델(DOM)의 돔 트리(DOM Tree)를 생성하고, 상기 돔 트리 중 최하위 노드에 해당하는 적어도 하나의 돔 객체(DOM Object)를 선택하고, 상기 선택된 적어도 하나의 돔 객체로부터 미리 정해진 복수의 기준에 따라 복수의 특징값을 각각 추출하고, 상기 적어도 하나의 돔 객체마다 추출된 상기 복수의 특징값을 특정 순서에 따라 조합하여, 상기 선택된 적어도 하나의 돔 객체의 특징 벡터를 추출하는 학습데이터 획득부; 및
    상기 추출된 특징 벡터 및 레이블을 분류기의 입력값으로 설정하여 상기 분류기(classifier)를 학습시키는 모델 학습부;를 포함하고,
    상기 분류기는, 상기 웹 페이지에 포함된 상기 사용자 식별 객체를 자동으로 식별하도록 학습되는 것을 특징으로 하는 장치.
  12. 제 11 항에 있어서,
    상기 학습데이터 획득부는,
    상기 선택된 적어도 하나의 돔 객체에 포함된 텍스트 특징, HTML 태그의 속성 및 상기 돔 트리 내에서 복수의 돔 객체의 계층 구조의 유사성 중 적어도 하나에 기초하여 상기 복수의 특징값을 추출하는 것을 특징으로 하는 장치.
KR1020200184552A 2020-12-28 2020-12-28 웹 페이지에서 자동으로 사용자 식별 객체 획득하는 방법 KR102570477B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200184552A KR102570477B1 (ko) 2020-12-28 2020-12-28 웹 페이지에서 자동으로 사용자 식별 객체 획득하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200184552A KR102570477B1 (ko) 2020-12-28 2020-12-28 웹 페이지에서 자동으로 사용자 식별 객체 획득하는 방법

Publications (2)

Publication Number Publication Date
KR20220093637A KR20220093637A (ko) 2022-07-05
KR102570477B1 true KR102570477B1 (ko) 2023-09-04

Family

ID=82402418

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200184552A KR102570477B1 (ko) 2020-12-28 2020-12-28 웹 페이지에서 자동으로 사용자 식별 객체 획득하는 방법

Country Status (1)

Country Link
KR (1) KR102570477B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102651294B1 (ko) * 2023-12-15 2024-03-26 주식회사 넷스루 화면 구성 요소에 대한 정보 수집을 지원하는 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007047974A (ja) 2005-08-09 2007-02-22 Hokkaido Univ 情報抽出装置および情報抽出方法
JP2020098592A (ja) * 2018-12-18 2020-06-25 富士通株式会社 ウェブページ内容を抽出する方法、装置及び記憶媒体

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110020292B (zh) * 2017-10-13 2020-07-28 华为技术有限公司 网页内容提取方法以及终端设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007047974A (ja) 2005-08-09 2007-02-22 Hokkaido Univ 情報抽出装置および情報抽出方法
JP2020098592A (ja) * 2018-12-18 2020-06-25 富士通株式会社 ウェブページ内容を抽出する方法、装置及び記憶媒体

Also Published As

Publication number Publication date
KR20220093637A (ko) 2022-07-05

Similar Documents

Publication Publication Date Title
CN108182295B (zh) 一种企业知识图谱属性抽取方法及系统
US20240177007A1 (en) Software test case maintenance
US11615246B2 (en) Data-driven structure extraction from text documents
CN112955893A (zh) 文档的自动超链接
US11727196B2 (en) System and method for automatic detection of webpage zones of interest
CN109189943B (zh) 一种能力知识抽取及能力知识图谱构建的方法
US20210004539A1 (en) Systems and methods for constructing an artificially diverse corpus of training data samples for training a contextually-biased model for a machine learning-based dialogue system
CN103559199B (zh) 网页信息抽取方法和装置
CN110427614B (zh) 段落层级的构建方法、装置、电子设备及存储介质
CN112732994B (zh) 网页信息的提取方法、装置、设备及存储介质
CN113051914A (zh) 一种基于多特征动态画像的企业隐藏标签抽取方法及装置
WO2023155303A1 (zh) 网页数据的提取方法和装置、计算机设备、存储介质
CN111625715A (zh) 信息提取方法、装置、电子设备及存储介质
CN112668316A (zh) word文档关键信息抽取方法
CN115168579A (zh) 一种基于多头注意力机制和二维卷积操作的文本分类方法
KR102570477B1 (ko) 웹 페이지에서 자동으로 사용자 식별 객체 획득하는 방법
EP4172811A1 (en) System and method for automatic detection of webpage zones of interest
Xu et al. Estimating similarity of rich internet pages using visual information
Patnaik et al. Trends in web data extraction using machine learning
Krishneth et al. Web-plugin to Detect Clickbait in News Articles using RNN and LSTM
Kim et al. A machine-learning based approach for extracting logical structure of a styled document
Yao Automatic GUI Code Generation with Deep Learning
US11790892B1 (en) Voice-driven application prototyping using machine-learning techniques
Rivera Practical TensorFlow. js
Lin et al. Distance Based Image Classification: A solution to generative classification’s conundrum?

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right