Skip to main content

텍스트 데이터 분석 소개

텍스트 분석의 필요성

  • 지식과 정보의 생산 속도가 빨라지면서 텍스트의 양이 증가
  • 최근에 생산된 텍스트가 인류 역사상 생산된 텍스트의 대부분
    • 공자가 평생 남긴 텍스트 < 단톡방 1개의 텍스트
  • 텍스트가 많아지면서 사람이 하나씩 읽는데 한계
  • 동시에 텍스트가 많아지므로 이를 분석하여 얻을 수 있는 정보도 많아짐
  • (그래프: 1년에 전송되는 이메일 수(단위: 10억)가 2017년 269에서 2025년(예측) 376.4로 꾸준히 증가함을 보여줌)

텍스트 분석의 필요성

  • 1950년대 생물학/의학 분야에서 출판된 논문은 1년에 10만편 이하
  • 현재는 100만편 이상의 논문이 출판되고 있음
  • 이에 따라 과학자들이 1년에 읽는 논문 수는 증가하고, 논문 1편을 읽는 데 쓰는 시간은 줄고 있으나 출판되는 논문의 증가 추세를 따라잡지 못함
  • (그래프 1: 1년에 출판되는 생물학/의학 논문 수가 1950년 이후 급격히 증가하여 2015년에는 약 120만 편에 달함을 보여줌)
  • (그래프 2: 과학자들이 연간 읽는 논문 수는 증가(주황선)하고, 논문당 읽는 시간은 감소(파란선)함을 보여줌 (1977-2005))

텍스트 분석과 자연어 처리

  • 텍스트 분석 (Text Analytics)
    • 텍스트 데이터에서 언어학, 통계학, 머신 러닝의 기법을 이용
    • 의사결정, 조사, 연구 등을 위해 정보를 추출하고 분석
    • 텍스트 마이닝 (Text Mining)
    • 예) 고객 리뷰를 분석하여 제품을 개선하고 싶다
  • 자연어 처리 (Natural Language Processing, NLP)
    • 언어학, 컴퓨터 과학, 인공지능 등의 한 분야
    • 컴퓨터를 이용해 자연어를 자동으로 처리하는 방법
    • 예) 고객 불만에 자동으로 응대하는 챗봇을 만들고 싶다

자연어 (Natural Language)

  • 자연어 (natural language)
    • 한국어, 영어 등 자연스럽게 생겨난 언어
  • 인공어 (constructed language)
    • 에스페란토(1887): 자멘호프가 국제적 의사소통을 위해 개발
    • 나비: 영화 아바타의 외계인 언어로 사용하기 위해 개발
  • 통제자연어 (controlled natural language)
    • 자연어에서 어휘, 문법 및 의미 등을 단순하게 제한하여 만든 인공어
  • 형식어 (formal language): 수식, 프로그래밍 언어 등

자연어의 특징

  • 규칙이 복잡하고, 예외가 많음
  • 음운론, 통사론, 의미론 등 다양한 수준으로 이뤄져 있음
    • 음소 (phoneme): 언어에서 소리의 가장 작은 단위, 그 자체로는 의미가 없음
    • 형태소 (morpheme): 의미가 있는 가장 작은 단위 (예: multi-)
    • 단어 (word): 독립적으로 쓰일 수 있는 형태소 (예: media)
    • 구문 구조 (syntax): 단어들이 모여서 문장을 이루는 구조
  • 해석을 위해서는 여러 수준에 대한 복합적 고려가 필요
    • 예: Time flies like an arrow; fruit flies like a banana. (문법적 구조는 같지만 의미가 다른 문장)
  • 순서, 의존성, 불연속적 변화
  • 언어의 다양성

자연어 처리의 접근 방식

  • 규칙 기반 (rule-based)
    • 언어의 규칙을 프로그래밍
    • 단순한 처리는 쉽게 가능
    • 다양한 예외, 애매성 등으로 복잡한 처리는 어려움
  • 머신 러닝 (machine learning)
    • 방대한 데이터를 바탕으로 패턴을 추출
    • 복잡한 처리도 가능
    • 데이터를 손으로 분류하는 비용이 높음

감성 분석

  • 텍스트에서 나타나는 감성을 분석하여 긍정, 부정, 중립 등의 감성을 파악
  • (다이어그램: 입력 텍스트 -> Text Classification Model -> 출력 (감성 분류 결과 및 확률))
  • (예시 UI: 제품 리뷰(평점), 긍/부정 키워드, 전문가 리뷰 등 시각화)

텍스트를 통한 평가

토픽 모델링

  • 텍스트에서 자주 함께 사용되는 단어들 → 특정한 토픽을 반영
  • 토픽 모델링: 대량의 문서에서 토픽을 자동으로 추출 → 토픽에 대한 키워드 및 문서를 파악
  • 개별적인 단어를 보는 것보다 의미 파악이 쉬움
  • (다이어그램: 문서 -> 단어 분석 -> 토픽 비율 및 할당 -> 토픽별 주요 단어 추출 과정)
  • (그래프: 시간에 따른 Hot/Cold 토픽의 평균 확률 변화)

토큰 분류 (Token Classification)

  • 토큰: 글을 이루는 구성 요소로서 분석의 기본 단위 (단어, 형태소 등)
  • 개체명 인식 (Named Entity Recognition, NER): 텍스트에 나타난 이름(사람, 장소, 기관 등)을 인식
  • (응용) 게임에서 욕설 등에 해당하는 표현 찾기
  • 정보 추출: 텍스트에서 구조화된 정보를 추출
    • 이메일에서 일정 추출, 소셜 미디어에 언급된 사람 이름 추출 등
  • (다이어그램: 입력 문장 -> Token Classification Model -> 단어별 태그 부착 출력 (예: Omar[PERSON], Zürich[GPE]))

개체명 인식 (Named Entity Recognition, NER)

  • 사람, 장소, 단체 등 특정한 종류의 이름(개체명)을 인식
  • 텍스트에 나타난 표현 중에 '이름'에 해당하는 것을 인식하고 분류
    • 신문 기사에서 행사, 장소, 날짜 등을 추출
    • 챗봇에서 메뉴, 수량 등을 추출
  • 텍스트에서 특정한 종류의 정보를 추출하고자 할 때 가장 기본이 됨
    • 예: 챗봇에서 주문을 처리하려면 상품명을 인식할 필요가 있음
  • 이름은 여러 단어로 되어 있을 수도 있고, 계속해서 새로운 이름이 생기기 때문에 사전으로 만들기도 어려움

Seq2Seq

  • 단어 시퀀스(=문장)을 입력 받아, 새로운 시퀀스를 생성하는 형태의 인공지능
  • 번역: 한 언어의 문장을 입력 받아, 다른 언어의 문장을 생성
  • 요약: 긴 문장을 입력 받아, 짧은 문장을 생성
  • 챗봇: 사용자의 질문을 입력 받아 답변을 생성
  • (다이어그램: 입력(영어) -> Translation Model -> 출력(독일어))

Semantic Textual Similarity (STS)

  • 두 텍스트가 의미적으로 비슷한 지 예측하는 과제
  • 자연어 추론(NLI)과 비슷하나, 논리적 관계(entailment, contradiction, neutral)가 아닌 의미적 유사성 점수를 측정
  • 단어가 아닌 의미가 비슷한 문서를 검색하는 데 활용할 수 있음
  • 이를 바탕으로 챗봇, 표절 탐지 등에 확장 가능
  • (다이어그램: 원본 문장과 여러 비교 문장들 간의 유사도 점수 계산 예시)