데이터 분석 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. 네이버 검색 트렌드
: 검색어 단어의 발현 횟수를 기반으로 트렌드를 확인 → 사람들의 관심사, 이슈 등을 파악 가능
- 기대 효과
- 특정 단어에 대한 사람들의 관심사 파악
- 제품 판매 및 예측을 미리 예상 가능
- 비즈니스 의사결정에 활용 가능