데이터 분석 Data Analytics/프로그래머스 데이터분석 데브코스 2기

[TIL] 데이터분석 데브코스 61일차 - 텍스트 마이닝

상급닌자연습생 2024. 5. 13. 13:13

텍스트 데이터 (Text Data)

: 문자, 단어, 문장으로 구성된 데이터

 

  • 단어는 주변의 단어들과 연관성이 있음
  • 텍스트 처리가 어려운 이유 : 
    • 비구조적(=비정형) 데이터
    • 다양성 : 같은 의미라도 여러 표현이 있을 수 있음 (ex. 맛있다, 맛이 좋다 등)
    • 다의성 : 같은 표현이 다른 의미로 사용될 수 있음 (ex. 잘한다)
    • 문맥 정보 포함
    • 언어별로 고유한 특징 존재 (문법, 어휘, 발음 등)

 

 

 

 

 

마이닝 (Mining; 채굴)

: 광물에서 귀중한 금속 or 광석을 채굴하는 작업

 

대량의 데이터(광물)에서 유용한 정보, 패턴(자원)을 찾기 위해 추출(채굴)하고, 이로부터 통찰력을 얻고 의사결정을 진행

 

 

 

 

 

 

자연어 처리 (Natural Language Processing; NLP)

: 컴퓨터가 인간의 언어를 이해하고 해석하는데 사용되는 분야

 

[목적]

  • 인간 언어의 구조와 의미 이해를 바탕으로 글을 활용한 문제를 해결
  • 향상된 사용자 경험을 제공

 

 

 

 

 

 

텍스트 마이닝 (Text Mining; TM)

: 텍스트로 구성된 대량의 데이터를 바탕으로 그 안에 존재하는 관계, 패턴, 규칙을 탐색하고, 이로부터 지식과 인사이트를 추출 의사결정에 활용하는 일련의 과정

 

텍스트 마이닝 프로세스

 

 

사용되는 패키지

  • Python
    • Pandas : 텍스트 데이터 조작과 처리에 용이
    • Gensim : 전처리 과정인 '임베딩' 지원
    • nltk : 자연어를 다루는 과정에서 유용한 tool kit 제공
  • R

 

 

 

텍스트 마이닝 ≠ 자연어 처리

  텍스트 마이닝 자연어 처리
목표 언어 속 내포된 정보 파악 언어의 이해
개념 대규모 텍스트 데이터 내의 존재하는 패턴, 관계, 정보를 발견하고 분석 사람이 편하기 위해서 컴퓨터가 인간의 언어를 이해하고 해석

 

 

 

 

 

 

 

 

 

텍스트 마이닝 프로세스

1단계. 텍스트 수집 및 추출

  • 수집한 데이터는 기본적으로 원시의 데이터로 쓸 수 없는 형태의 데이터도 존재
  • 데이터의 질을 관리하기 위해 목표 관련성이 높은 글, 다양성이 확보되는 글을 주기적으로 모니터링 해야 함

 

방법 1. 웹 크롤링

  • 웹에 존재하는 텍스트 데이터를 수집
  • Selenium, Beautiful Soup, Scrapy 등의 패키지 활용
  • 크롤링이 가능한 사이트만 이용해야 함

 

방법 2. API 사용

  • 대형 SNS 플랫폼, 뉴스 사이트, 온라인 포럼 등은 데이터 제공을 위한 API를 제공
  • API 사용 비용을 지불해야할 수 있음

 

방법 3. 공개 데이터

  • 연구 기관, 정부 기관, 기업 등에서 제공하는 공개 데이터를 활용

 

 

 

 

 

2단계. 텍스트 전처리

  • 비구조화 데이터를 정제하고 분석이 가능한 형태로 변환하는 과정
  • 풀어야 하는 문제에 따라 전처리 방법이 달라짐

 

방법 1. 노이즈 값 제거

  • 원시 데이터에는 이모티콘, 오타, 비속어 등 다양한 노이즈 값이 존재
  • 이러한 이상 데이터를 제거 혹은 수정

 

방법 2. 분석에 최소 단위로 글을 분류

  • 단어 기반 문제 풀이, 문장 기반 문제 풀이 등에 따라 사용하는 정보의 단위(=Token, 토큰)가 다름
  • Tokenize : 정보의 단위로 글을 분리
  • Embedding : 이것을 컴퓨터가 이해할 수 있는 형태로 변환 

 

방법 3. 글의 길이 조절

  • 제한된 환경에서 작성된 글이 아닌 경우, 너무 길거나 짧은 글이 존재
  • Normalize : 이를 통일된 형태로 변경해야 함 (길다면 자르거나, 짧다면 복제 혹은 다른 글과 통합 혹은 dummy 값 추가 등)

 

 

 

 

3단계. 텍스트 마이닝 기법 적용

  • 데이터로부터 유의미한 정보를 추출하고 인사이트를 도출하는 과정
  • 다양한 문제 : 
    • 내용 파악 및 분석
      • 자연어 이해 : 글에 존재하는 의미, 의도 파악
      • 요약 : 글의 내용을 요약 정리
      • 개체명 인식 : 글에서 인물, 장소, 기관 등의 특ㅈ어 정보를 식별 & 분류
    • 숨겨진 의미 파악
      • 토픽 모델링 : 글에 있는 숨겨진 주제 발견
      • 트렌드 분석 : 시간에 따르 데이터 변화를 분석, 패턴과 변화를 식별
      • 감정 분석 : 글에 존재하는 저자의 감정 상태를 파악
    • 관계 파악 및 구조화
      • 군집화 : 비슷한 의미의 글을 그룹화 해서 문서간의 관계 파악
      • 글 분류 : 글을 특정 범주로 분류

 

 

 

 

 

4단계. 텍스트 마이닝 결과 분석

  • 분석된 결과를 활용해 정보 이해, 통찰 도출, 의사 결정 과정에서 사용
  • 1) 정보 이해
    • 텍스트의 전반적인 내용을 파악
    • 타겟 그룹에서 생성된 글의 패턴과 흐름을 빠르게 확인
    • 예) 제품을 사용하는 사용자 중 40대의 반응을 보고 제품 사용 관점에서 나오는 키워드를 파악
  • 2) 통찰 도출
    • 데이터 안에 숨어있는 연결 정보를 추출
    • 숨은 정보를 추출하는 기술적인 모델이 필요
    • 예) 제품에 대한 긍정적인 포인트와 부정적인 포인트를 이해
  • 3) 의사 결정
    • 통찰을 바탕으로 비지니스 전략, 제품 개발, 마케팅 등의 의사 결정 과정에서 활용
    • 예) 부정적인 부분을 개발하고, 이를 적극적으로 마케팅에 활용

 

 

 

 

 

 

 

 

텍스트 마이닝 사례

1. FAQ (자주 묻는 질문)

: 자주 묻는 질문과 그에 대한 답변을 모아 놓은 목록으로, 사용자가 자주 겪는 문제나 궁금증을 빠르게 해결할 수 있도록 도움

  • CS, 고객 피드백, 리뷰 등에서 수집된 질문 - 답변의 패턴을 식별 및 분석하고 자주 묻는 질문(FAQ)를 생성
  • 지속적 업데이트로 서비스 개선 → 제품의 개선 포인트 찾아낼 수 있음
  • 기대 효과
    • 사용자 입장 : 빠른 문제 해결, 편리한 정보 접근
    • 서비스 제공자 : 고객 지원 비용 절감, 고객 만족도 향상

 

 

2. 밑줄 긋기

: 교과서, 독서하는 책에서 중요한 정보에 밑줄을 칠함

  • 과거 정보들을 바탕으로 중요한 내용이 무엇인지 판단
  • 기대 효과
    • 독자 : 다시 읽는 시점에 중요한 정보 빠르게 시각화, 기억력 강화, 정보 정리

 

 

 

3. 심리 분석

: 환자로부터 나온 글 내용 속 단어, 문구, 분위기를 바탕으로 그의 심리 상태, 감정 변화, 중요한 사건, 생각 패턴을 파악

  • 디지털화 된 데이터 내에 존재하는 환자의 감정 상태 파악 
  • 기대 효과
    • 환자 : 본인 상태 이해, 맞춤화 치료 과정 진행
    • 상담사 : 상담 효과 향상, 환자 상태 정량적 확인 가능, 치료 과정 변화 확인 가능

 

 

 

4. 신문 스크래핑

: 신문 내용을 보고 관심있는 내용을 스크랩하는 것

  • 관심있는 주제와 관련된 내용(ex. 특정 개체의 이름, 관심 이슈 등)을 인식하는 과정이 필요
  • 기대 효과
    • 구독자 : 최신 데이터 추적, 관심 분야의 패턴 확인, 다양한 관점의 의사결정 가능

 

 

 

 

5. 네이버 검색 트렌드

: 검색어 단어의 발현 횟수를 기반으로 트렌드를 확인 → 사람들의 관심사, 이슈 등을 파악 가능

  • 기대 효과
    • 특정 단어에 대한 사람들의 관심사 파악
    • 제품 판매 및 예측을 미리 예상 가능
    • 비즈니스 의사결정에 활용 가능