Home [오픈 소스 기반 데이터 분석] 13강 - 반정형 데이터 분석
Post
Cancel

[오픈 소스 기반 데이터 분석] 13강 - 반정형 데이터 분석

💡해당 게시글은 방송통신대학교 정재화 교수님의 '오픈 소스 기반 데이터 분석' 강의를 개인 공부 목적으로 메모하였습니다.



학습 개요


  • 반정형 데이터는 완전한 정형 데이터처럼 고정된 스키마를 갖고 있지는 않지만 일정한 구조와 규칙을 지닌 데이터 형식임
  • 이러한 특성은 데이터를 저장하고 해석하는 데 유연성을 제공하면서도
  • 동시에 구조적 접근을 가능하게 해줌
  • 특히 반정형 데이터는 WWW의 발전과 함께 웹 기반 정보 분석 및 자연어 처리 응용에서 핵심적인 데이터 자원으로 자리 매김하였음
  • 반정형 데이터의 개념과 구조, 그리고 이를 분석하기 위한 웹 스크래핑 및 텍스트 처리 기법을 학습함
  • 먼저 웹 스크래핑의 개념을 이해하고 Selenium과 같은 라이브러리를 활용한 데이터 수집 방법을 실습함
  • 텍스트 데이터 전처리를 위해 정규 표현식을 활용하는 방법을 학습하고 수집한 텍스트 데이터를 대규모 언어 모델(LLM)을 기반으로 분류하고 분석 결과를 시각화하는 실습을 통해 반정형 데이터의 분석 전 과정을 경험함



학습 목표


  • 반정형 데이터의 개념과 특성을 이해할 수 있음
  • 웹 스크래핑 기술을 활용하여 HTML 형태의 게시판 데이터를 수집할 수 있음
  • 정규표현식과 형태소 분석 등의 전처리 기법을 적용하여 텍스트 데이터를 분석 가능한 형태로 변환할 수 있음
  • 대규모 언어 모델(LLM)을 활용하여 게시글을 분류하고 커뮤니케이션 패턴을 분석할 수 있음



강의록


반정형 데이터 분석

반정형 데이터의 개념과 특성

  • 완전한 정형 데이터는 아니지만 일정한 구조와 규칙을 가진 데이터 유형
    • 월드 와이드 웹(WWW)의 탄생 이후 웹의 기본 구조로 자리 잡은 형태
    • 지난 30여 년간 인터넷 상의 거의 모든 정보가 반정형 데이터 형식으로 작성됨
  • HTML, XML, JSON 등이 대표적인 반정형 데이터 형식
  • 웹 데이터 분석, 대규모 언어 모델(LLM) 개발의 훈련 데이터, 데이터 분석/과학 연구 등에 응용됨

웹 스크래핑

  • 웹 페이지 다운로드에서 끝나지 않고 다운로드한 웹 페이지에서 원하는 데이터를 정확히 추출하는 과정
  • 웹 스크래핑 관련 라이브러리
    • Selenium
      • 웹 브라우저를 자동화하여 동적 웹 페이지나 로그인이 필요한 페이지에 효과적으로 접근
      • 실제 웹 브라우저를 실행하여 클릭, 입력 등 사용자 행동을 모방
    • lxml
      • HTML 문서를 파싱하고 원하는 데이터를 추출
      • HTML의 태그와 속성으로 구성된 구조를 해석하고 XPath를 통해 특정 요소를 선택적으로 추출

텍스트 데이터 분석

  • 텍스트 데이터 전처리
    • 정규식을 활용한 특수 문자 제거
    • 형태소 분석을 통한 품사 분리, 불용어 처리 등의 과정을 통해 텍스트 데이터를 분석 가능한 형태로 정제
  • 키워드 분석
    • 단어 빈도 분석, 워드 클라우드 생성, 주요 키워드 추출을 통해 텍스트 데이터에서 의미 있는 정보를 추출
  • 텍스트 분류 및 시각화
    • 대규모 언어 모델(LLM)을 활용한 텍스트 분류
    • 분류 결과 시각화, 인사이트 도출 과정을 통해 텍스트 데이터의 패턴을 발견

lxml의 XPath

  • XML 및 HTML 문서에서 특정 요소를 선택하는 데 사용되는 경로 표현 언어
    • 태그, 속성, 텍스트 등을 선택적으로 추출 가능
    XPath 문법설명
    /절대 경로 - 루트 요소부터 시작
    //상대 경로 - 현재 위치에서 모든 하위 요소 선택
    .현재 노드
    @속성 선택
    text()요소의 텍스트 값 선택
    []조건 설정
    *모든 요소 선택

텍스트 정제

  • 정규 표현 식
    • 기호와 문자 조합으로 특정 규칙을 가진 문자열을 찾는 체계
    • 문자를 선택하는 요소, 반복을 나타내는 요소, 문자 범위를 나타내는 요소로 구성
  • 주요 정규 표현 식 패턴

    패턴설명
    [^a-zA-Z0-9가-힣\\s]영문자, 숫자, 한글, 공백을 제외한 모든 문자
    <[^>]*><로 시작하고 >로 끝나는 모든 HTML 태그
    \\s공백 문자 (스페이스, 탭, 개행 등)를 의미

형태소 분석

  • 문법적인 의미를 가지는 최소 단위인 형태소로 텍스트를 분리하고 각 형태소의 품사를 파악하는 과정
  • 한국어는 교착어로서 하나의 단어가 다양한 어미나 조사와 결합하여 여러 의미를 표현할 수 있어 형태소 분석이 특히 중요
  • Kiwi 라이브러리
    • 한국어 형태소 분석을 위한 최신 도구로 KoNLPy 등 기존 라이브러리보다 빠르고 정확한 분석 결과를 제공
    • 문장의 핵심 의미를 담고 있는 명사를 추출하기 위한 목적으로 사용

게시글 분류

  • 문서/문장을 미리 정의된 카테고리로 분류하는 작업
  • 대량의 텍스트 데이터 분류를 위해 대규모 언어 모델(LLM)이 도입
    • 문맥을 이해하고 생성할 수 있는 딥러닝 기반의 AI 모델
    • 텍스트 분류, 요약, 번역, 질의 응답 등 다양한 자연어 처리 작업 수행 가능
  • LLM 구축 환경
    • VLLM 라이브러리를 통해 LLM 모델 로드
    • Hugging Face의 모델 저장소에서 LG에서 개발한 EXAONE 3.5 버전의 2.4B 모델을 사용
    • 한국어 처리 능력이 우수하고 구글의 T4 GPU에서도 구동

실습 프로젝트

  • 방송통신대학교 학과게시판의 글 제목을 수집하고 분석
    • 웹 스크랩핑 구현 및 텍스트 데이터를 분석을 통한 텍스트 분류 및 시각화

    | 단계 | 주요 내용 | | — | — | | 1. 데이터 수집 및 전처리 | Selenium을 활용한 웹 페이지 접근 Ixml을 이용한 HTML 파싱 게시글 제목 추출 | | 2. 텍스트 데이터 전처리 | 정규식을 활용한 특수 문자 제거 형태소 분석을 통한 품사 분리 불용어 처리 | | 3. 키워드 분석 | 단어 빈도 분석 워드 클라우드 생성 주요 키워드 추출 | | 4. 텍스트 분류 및 시각화 | LLM을 활용한 텍스트 분류 분류 결과 시각화 |



연습 문제


  1. Selenium 라이브러리의 주된 기능은 무엇인가?

    a. 웹 브라우저 자동화

  2. 다음 중 한국어 형태소 분석을 위한 라이브러리는?

    a. Kiwi

  3. HTML 문서에서 원하는 데이터를 추출하기 위한 경로 표현 언어는?

    a. XPath



정리 하기


  • 반정형 데이터는 완전한 정형 데이터는 아니지만 일정한 구조와 규칙을 가진 데이터임
  • 웹 페이지는 HTML(구조), CSS(스타일), JavaScript(동작)의 세 요소로 구성됨
  • Selenium, lxml, Xpath는 통해 동적 웹 페이지 크롤링에 효과적임
  • Kiwi 라이브러리는 한국어 형태소 분석에 효과적임
  • 정규 표현 식을 활용하여 특수 문자를 제거하고 텍스트를 정제함
  • 형태소 분석을 통해 문장을 품사 단위로 분리함
  • 워드 클라우드는 단어의 출현 빈도에 따라 크기를 다르게 하여 시각화함
  • 대규모 언어 모델(LLM)을 활용하여 게시글을 자동으로 분류할 수 있음
Contents

[컴퓨터과학 개론] 2강 - 컴퓨터와 데이터

[멀티미디어 시스템] 2강 - 멀티미디어 시스템 환경