복습하기 위해 학부 수업 내용을 필기한 내용입니다.
이해를 제대로 하지 못하고 정리한 경우 틀린 내용이 있을 수 있습니다.
그러한 부분에 대해서는 알려주시면 정말 감사하겠습니다.
비정형 데이터 : Unstructured Data
미리 정의된 데이터 모델이 없거나, 미리 정의된 방식으로 정리되지 않은 정보
- 이미지, 텍스트, 사운드, 동영상, 기타 등등
비정형 데이터의 처리 : Embedding
- 비정형 데이터의 특징을 추출하여 정형 데이터로 바꾸기
- 이미지 임베딩 : ImageNet
- 텍스트 임베딩 : Bag of Words, Word2Vec
자연어 처리 : NLP (Natural Language Processing)
자연어 : 사람이 일상생활에서 사용하는 언어
자연어 처리 : 번역, 요약, 분류, 감성 분석, 챗봇, 기타 등등
자연어의 구성 : 문서, 문장, 단어
- 문서 : 문장들의 집합 (Document)
- 문장 : 단어들의 집합
- 단어 : 텍스트 분석의 기본 단위 (Word = Term)
텍스트 전처리 : Text Preprocessing
코퍼스(Corpus): 말뭉치. 텍스트 분석을 위한 데이터셋
텍스트 분석을 위한 전처리 과정
- 변환 : Transformation
• Text Cleansing : 텍스트에서 불필요한 요소를 제거하고 수정
• Lowcase, Remove Accents, Parse html, Remove urls
- 토큰화 : Tokenization
• 문서에서 문장을 분리, 또는, 문장에서 단어를 분리
• 정규 표현식 : Regular Expression
- 규칙을 기반으로 토큰을 분리할 수 있다.
- 정규화 : Normalization
• 불용어 (Stopwords) 처리 : 분석에 필요하지 않은 단어를 제거
• 출현 빈도수가 높은 단어만 선택
- 필터링 : Filtering
• 형태소 분석 : 같은 의미지만 서로 다른 단어들을 하나의 단어로 일반화
- 어간 추출 : Stemming
- 표제어 추출 : Lemmatization
- N-그램 : N-grams Range
• 분석 결과의 단위를 연속적인 N개의 토큰으로 구성
- 품사 태깅 : POS Tagger
• 각 단어의 품사를 태그 하여 단어의 의미 파악
- fly : 파리 / 날다
- 파리 : 프랑스 파리, 곤충 파리
단어 가방 : Bag of Words, BoW
문서(Document)에 포함되어 있는 단어(Word)의 빈도 수로 특징 추출
순서나 문맥을 무시하고 가방에 단어를 담기 때문에 처리가 간단함
D.1 : John likes to watch movies. Mary likes movies too.
D.2 : Mary also likes to watch football games.
BoW.1 : John:1, likes:2, to:1, watch:1, movies:2, Mary:1, too:1
BoW.2 : Mary:1, also:1, likes:1, to:1, watch:1, football:1, games:1
단어 빈도 : TF, Term Frequency
특정 단어가 문서 내에서 얼마나 자주 등장하는가?
BoW.1 : John:1, likes:2, to:1, watch:1, movies:2, Mary:1, too:1
BoW.2 : Mary:1, also:1, likes:1, to:1, watch:1, football:1, games:1
문서-단어 행렬 : DTM, Document-Term Matrix
각 문서별로 해당 단어가 몇 번 나타나는가를 표시한 행렬
Term Frequency
- Count : 단어가 나타나는 횟수로 만드는 경우
- Binary : 단순하게 단어가 포함되어 있는가의 여부
- Sublinear : 단어 빈도(TF)의 로그값
★문서 빈도 : DF, Document Frequency
단어의 빈도수만으로 벡터화를 할 경우, 단어의 중요성을 간과하게 된다.
- 예) The anatomy of a large-scale hypertextual web search engine.
특별한 단어에 가중치를 주는 방법 : 단어의 희소성을 고려
- 개별 문서에 자주 나타나는 단어는 높은 가중치를 주되,
- 모든 문서에 전반적으로 자주 나타나는 단어에 대해서는 페널티를 부여
Document Frequency
- ★IDF : Inverse Document Frequency
- Smooth IDF : Divide-by-Zero 방지를 위해 DF에 1을 더한 값을 사용한다.
TF-IDF : Term Frequency - Inverse Document Frequency
텍스트 마이닝과 정보 검색에서 많이 이용하는 가중치 부여 방법
TF-IDF는 단어 빈도(TF)와 역 문서 빈도(IDF)를 곱한 값
- 전체 문서를 D, 문서를 d, 단어를 t라 할 때
- TFIDF(t, d, D) = TF(t, d) ∗ IDF(t, D)
- TF(t, d) = 0.5 + 0.5 * f(t, d) / max {f(w, d) : w∈d}
- IDF(t, D) = log |D| / {d∈D : t∈d}
단어 가방의 한계
희소 행렬 : Sparse Matrix
- 많은 문서에서 많은 단어를 추출하면 단어 집합의 크기가 커지고,
- 각 문서에 포함된 단어의 수는 일정하므로, 매우 큰 희소 행렬이 된다.
- 희소 행렬의 연산에 적절한 행렬 처리가 필요하다.
문맥과 의미 : Contexts and Semantics
- BoW는 단어의 순서를 고려하지 않으므로 문맥적 의미를 무시한다.
- 단어와 문장의 순서를 고려하여 문맥과 의미를 반영할 필요가 있다.
텍스트 분류 : Text Classification
주어진 문서를 특정 카테고리로 분류하는 기법
- 예) 뉴스 기사 자동 분류, 스팸 메일 필터링
나이브 베이지안 분류기: Naïve Bayesian Classifier
특징변수(feature)가 서로 독립사건이라는 순진한 가정하에
- 베이즈 정리를 적용하여 확률적으로 목적변수(target)를 추론하는 분류기
• 예) 스팸 메일 분류기, 암 진단
확률 : Probability
시행, 사건, 확률: trial, event, and probability
- 시행 = 동전 던지기, 사건의 집합: S = {𝐻, 𝑇}
- 확률 : 𝑃 𝐻 = 동전 던지기를 했을 때, 앞면(𝐻)이 나올 확률
- 사건 : 상호배타적이고 포괄적(mutually exclusive and exhaustive)
결합 확률 : Joint Probability
𝑃(𝐴 ∩ 𝐵) : 두 사건 𝐴와 𝐵가 동시에 일어날 확률
독립 사건 : Independent Events
- 사건 𝐴가 일어나는 것과 무관하게 사건 𝐵가 일어나는 경우
- 예) 𝐴 : 동전의 앞면이 나오는 사건, 𝐵 : 주사위의 짝수가 나오는 사건
종속 사건 : Dependent Events
- 두 사건 A와 B가 독립사건이 아닌 경우
- 예) 𝐴 : 주사위의 홀수가 나오는 사건, 𝐵 : 주사위의 소수가 나오는 사건
두 사건 A, B가 독립사건일 경우
- 𝑃(𝐴 ∩ 𝐵) = 𝑃(𝐴) × 𝑃(𝐵)
조건부 확률 : Conditional Probability
𝑃(𝐴 | 𝐵): 사건 𝐵가 발생한 경우, 사건 𝐴가 발생할 확률
두 사건 A와 B가 독립사건이라면,
- 𝑃(𝐴 | 𝐵) = 𝑃(𝐴∩𝐵) / 𝑃(𝐵)
- 𝑃(𝐵 | 𝐴) = 𝑃(𝐴∩𝐵) / 𝑃(𝐴)
- 따라서, 𝑃(𝐴 | 𝐵) × 𝑃(𝐵) = 𝑃(𝐵 | 𝐴) × 𝑃(𝐴)
오피니언 마이닝과 감성 분석 : Opinion Mining & Sentiment Analysis
문서의 감정을 긍정/중립/부정 등으로 파악하기 위한 방법
소셜 미디어, 온라인 리뷰, 영화 댓글 분석 등에 다양하게 활용
감성 분석을 위한 지도 학습
학습 데이터에 긍정/부정/중립 등의 라벨이 포함되어 있다.
기존의 텍스트 기반 분류 알고리즘과 동일한 방법으로 분석 가능하다.
감성 분석을 위한 비지도 학습
어휘 사전(Lexicon)을 기반으로 텍스트의 감성을 분석
감성 지수(극성 점수) : Polarity Score
- 부정(-1)에서 긍정(+1)까지, 감성의 정도를 의미하는 점수
- 단어의 위치, 주변 단어, 문맥, 품사(POS) 등을 고려해서 점수 부여
감성 분석을 위한 라이브러리
- Liu-Hu : NLTK에 포함된 Lexicon 기반의 감성 분석 모듈
- VADER : 소셜 미디어의 텍스트에 특화된 감성 분석 모듈
- SentiArt : VSM(Vector Space Model) 기반의 감성 분석 모듈
'컴퓨터공학 > 데이터과학기초' 카테고리의 다른 글
[데이터과학기초] 네트워크 분석 (5) | 2023.01.10 |
---|---|
[데이터과학기초] 인공신경망 (0) | 2023.01.10 |
[데이터과학기초] 군집 분석 (Clustering) (2) | 2023.01.09 |
[데이터과학기초] 로지스틱 회귀와 분류 (0) | 2023.01.02 |
[데이터과학기초] 선형 회귀와 예측 (0) | 2022.12.30 |