[Week 14] Day 1 - TIL

Topics

  • 텍스트 마이닝이란
  • 텍스트 마이닝의 절차
  • 텍스트 마이닝의 사례

텍스트 마이닝이란

텍스트 데이터 (Text data)

  • 문자, 문장, 단어로 구성된 데이터
  • 대규모 데이터는 매일 약 8200만 TB의 텍스트가 생성되는데, 그 중에서 text만 추출한 것
  • 텍스트 데이터를 통해 시장 변화를 파악하고 대응하거나, 고객의 요구사항과 feedback을 파악할 수 있음

 

텍스트 데이터의 특징

  • 텍스트 데이터를 구성하는 요소 (문장, 문자, 단어) 에서 단어는 주변의 단어들과 연관성이 존재하는데, 이 연관성을 이해하는 방향으로 텍스트 데이터를 처리하여야 함
  • 텍스트 데이터를 처리하는 과정에서 어려움이 발생할 수 있음
1. 비구조적(비정형) 데이터 
2. 다양성, 다의성이 존재함
3. 언어별로 고유한 특징이 존재 (문법, 어휘, 발음 등)

 

텍스트 마이닝이란

마이닝 (Mining, 채굴)

  • 채굴이란 단어의 의미는 광물에서 귀중한 금속이나 광석을 채굴하는 작업을 의미
  • 대량의 데이터(광물) 에서 유용한 정보와 패턴(자원) 을 찾기 위해 채굴이 필요한데, 여기서 얻어낸 정보와 패턴으로 통찰력을 얻고 의사 결정을 진행함
  • 즉, 데이터로부터 "의사 결정"을 하기 위해 Mining 을 진행함
  • 원천 데이터가 어떠한 데이터이냐에 따라서 마이닝의 종류가 달라짐

 

 

텍스트 마이닝 (Text Mining)

  • 대용량의 텍스트 안에 존재하는 관계, 패턴, 규칙을 탐색하여 지식과 인사이트를 추출하여 의사 결정에 활용하는 일련의 과정
텍스트 전처리 텍스트 마이닝 해석 및 평가

 

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

  • 텍스트 마이닝과 같다고 생각하지만, 다른 점이 존재함 (NLP : 언어의 이해, TM : 언어 속에 내포된 정보를 파악)
  • 컴퓨터가 인간의 언어를 이해하고 해석하는 데 사용되는 분야
  • NLP의 목적은 글을 활용한 문제를 해결하고 더 나은 사용자 경험을 제공하고자 함

 

텍스트 마이닝에 사용되는 패키지

  • Python, R
  • 텍스트 데이터 수집, 처리, 분석, 시각화 등 다양한 작업을 지원함
  • Pandas : 텍스트 데이터 조작과 처리에 용이함
  • Gensim : 전처리 과정인 embedding 과정 지원
  • nltk : 자연어를 다루는 과정에서 유용한 tool kit 지원

텍스트 마이닝 절차

1️⃣ 텍스트 수집 및 추출

데이터 수집 방법

 

❶ 웹 크롤링

  • 웹에 존재하는 텍스트 데이터를 수집 (Selenium, Beautiful soup, Scrapy 등 패키지를 활용)
  • 크롤링 가능한 사이트를 위주로 사용하여야 함 (개인정보 보호 이슈)

❷ API 사용

  • 대형 SNS Platform (ex - Instagram, Facebook), 뉴스 사이트 등 데이터 제공을 위한 API 제공
  • API 사용 비용을 지불해야 할 수 있음

❸ 공개 데이터

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

원시 데이터로 쓸 수 없는 형태의 데이터 ("ㅋㅋㅋ..", 이모티콘)도 존재하므로 데이터의 품질을 관리하기 위해 사용 목표에 맞는 데이터를 주기적으로 모니터링하여야 함.

 

2️⃣ 텍스트 전처리

  • 수집된 텍스트 데이터는 비구조적(비정형) 데이터가 일반적이므로 전처리 과정을 통해서 데이터를 정제하고 분석이 가능한 형태로 변환하여야 함
  • 텍스트 전처리는 풀어야 하는 문제에 따라 다양한 방법들이 존재함

노이즈 값 제거

  • 원시 데이터에는 이모티콘, 오타, 비속어 등 다양한 노이즈 값이 존재하는데, 이러한 이상 데이터를 제거 
  • 의미가 있는 경우에는 데이터를 수정

분석에 최소 단위로 글을 분류

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

글 길이 조절

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

3️⃣ 텍스트 마이닝 기법 적용

  • 데이터로부터 유의미한 정보를 추출하고, 인사이트를 도출하는 과정

내용 파악 및 분석

  • 자연어 이해 : 글에 존재하는 의미와 의도를 파악
  • 요약
  • 개체명 인식 : 글에서 인물, 장소, 기관 등의 특정 정보를 식별 & 분류

숨겨진 의미 파악

  • Topic modeling : 글에 담겨있는 숨겨진 주제를 발견
  • Trend 분석 : 시간에 따른 데이터 변화를 분석, 패턴과 변화를 분석
  • 감정 분석 : 글에 존재하는 저자의 감정 상태를 파악

관계 파악 및 구조화

  • 군집화 : 비슷한 의미의 글을 그룹화하여 문서 간의 관계 파악
  • 글 분류 : 글을 특정 범주로 분류

4️⃣ 텍스트 마이닝 결과 분석

  • 분석된 결과를 활용하여 정보 이해, 통찰 도출, 의사 결정 과정에서 사용

정보 이해

  • 텍스트의 전반적인 내용 파악
  • 타겟 그룹에서 생성된 글의 패턴과 흐름을 빠르게 확인
  • ex) 제품을 사용하는 사용자 중 40대의 반응을 보고 제품 사용 관점에서 나오는 keyword 파악 (keyword 의미를 분석하는 것은 데이터 분석 과정)

통찰 도출

  • 데이터 안에 숨어 있는 연결 정보를 추출
  • 숨은 정보를 추출하는 기술적 모델 필요
  • ex) 제품에 대한 긍정적인 포인트와 부정적인 포인트 이해

의사 결정

  • 통찰을 바탕으로 비즈니스 전략, 제품 개발, 마케팅 등의 의사 결정 과정에서 사용
  • ex) 부정적인 부분을 개발하고, 이를 적극적으로 마케팅에 활용

텍스트 마이닝의 사례

1️⃣ 자주 묻는 질문 (FAQ)

  • 자주 묻는 질문과 그에 대한 답변을 모아 놓은 목록
  • 사용자가 자주 겪는 문제나 궁금증을 빠르게 해결할 수 있도록 도움
  • CS, 고객 피드백, 리뷰 등에서 수집된 질문 - 답변 패턴 식별 및 분석
  • 지속적인 업데이트로 서비스를 개선
  • 사용자는 빠른 문제 해결과 편리한 정보 접근이 가능
  • 서비스 제공자는 고객 지원 비용 절감 및 고객 만족도 향상 효과를 얻을 수 있음

 

2️⃣ 책에 밑줄 긋기

  • 중요한 내용이 무엇인지 판단
  • 목적에 맞는 밑줄 긋기가 필요
  • 독자는 중요한 정보를 빠르게 시각화할 수 있고, 기억력 강화를 통해 정보 정리를 효과적으로 진행

3️⃣ 심리 분석

  • 환자로부터 나온 글 내용 속 단어, 문구, 분위기를 바탕으로 심리 상태, 감정 변화, 중요한 사건이나 생각 패턴을 파악
  • 디지털화된 데이터(일기, 전화 내용, 상담 내용 등) 내에 존재하는 환자의 감정 상태를 파악
  • 그래프와 차트 형태의 시각화 과정으로 빠른 파악 가능
  • 환자 입장에서 본인의 상태를 깊게 파악할 수 있고 맞춤화 치료 과정을 진행할 수 있음
  • 상담사의 입장에서는 상담의 효과를 향상시킬 수 있고 환자의 상태를 정량적으로 확인하고 치료 과정의 변화를 확인할 수 있음

 

4️⃣ 신문 스크래핑

  • 관심 있는 주제와 관련된 내용을 인식하는 과정이 필요함 (특정 개체 이름, 관심 이슈 등)
  • 구독자는 최신 데이터를 추적할 수 있고 관심 분야의 패턴을 확인할 수 있음
  • 시간에 따른 의미 관계 파악, 언론사 별로 바라보는 여러 시각 정리 및 다양한 관점을 습득 가능
  • 투자, 사업성 등 다양한 관점의 의사 결정을 내릴 수 있음

5️⃣ 네이버 검색 트렌드

  • 검색어 단어의 발현 횟수를 기반으로 트렌드 확인
  • 사람들의 관심사, 전 국민적 이슈 등을 파악 가능
  • 특정 단어에 대한 사람들의 관심사 파악
  • 제품 판매 및 예측을 미리 예측해볼 수 있음
  • 비즈니스의 의사 결정에 활용될 수 있음

'Bootcamp' 카테고리의 다른 글

[Week 14] Day 3 - TIL  (1) 2024.03.05
[Week 14] Day 2 - TIL  (1) 2024.02.28
[Week 11] Day 2 - TIL  (1) 2024.02.06
[Week 11] Day 1 - TIL  (0) 2024.02.05
[Week 10] Day 1 - TIL  (2) 2024.02.05