nlp(62)
-
Entropy
목차 1. 정보량 수량화하기 2. Entropy (엔트로피) 3. Cross Entropy (교차 엔트로피) 4. Cross Entropy와 Perplexity(혼잡도) 1. 정보량 수량화하기 1) 중요성 : 일어날 확률 낮을수록 정보량이 많다 2) 가법성 : 두 사건이 독립이라면 두 사건이 함께 일어날 때의 정보량은 각 사건의 정보량을 합한 것과 같다 이 두가지 조건을 만족시키려면 정보량은 다음과 같이 정의되어야 한다. 이는 놀라움의 정도로 해석할 수 있다. 2. Entropy (엔트로피) 엔트로피는 표본공간에 나타나는 모든 사건의 정보량의 평균적인 기댓값 이러한 엔트로피는 확률이 모두 같을 때 (uniform distribution) 가장 높다. (ex) fair coin이라 앞면 뒷면 나올 확률 같..
2019.12.04 -
Vector Semantics
1) word sense : 단어의 의미 2) synonym (ex) couch와 sofa * principle of contrast : 형태 다르면 의미도 다르다 3) word similarity (ex) dog와 cat 3) relatedness (또는 association) (ex) cup과 coffee 4) lexical fields (어휘장) (ex) 의사와 매쓰 단어의 의미란? 단어의 사용(use), 즉 문맥에 따라 달라진다. (ex) Labov : 컵이란 무엇인가? ∴ 단어의 의미는 neighboring word를 통해 알 수 있다. "한 단어 = 그 단어의 이웃 단어를 벡터로 나타낸 것" [ Vector Semantics ] 1. Long, sparse vector : count로 벡터 만..
2019.12.04 -
Naive Bayes and Text Classification
Text Classification 1. 명시적 코딩 2. 감독학습 2.1. Generative / Joint Model (ex) Naive Bayes, Language Model 2.2. Discriminative / Conditional Mdoel (ex) Logistic Regression, Maximum Entropy Model Naive Bayes(=NB)의 2가지 가정 1) Bag of Words(=BoW) : 단어의 순서는 중요하지 않다 2) 각 feature는 모두 독립적이다 [ NB 수식 ] * d = document(글), c = class(종류) , f = feature(특징적 요소) [ NB 계산하기 ] 1) 단순 count 2) Add-one Smoothing 특정 class에 나..
2019.12.04 -
Language Modeling
Language Model(=LM) : 문장 또는 단어의 연쇄의 확률을 계산하는 것 1) Chain Rule 2) Markov Assumption (ex) Unigram Model (ex2) Bigram Model Bigram의 Maximum Likelihood Estimate 이러한 LM의 문제점 1) 언어는 long distance dependency : 한 단어로부터 엄청 멀리 있는 단어에게도 영향을 받는다 2) 일반화 능력이 부족하다 : training data와 test data에 쓰이는 단어들이 같아야만 성능 좋음, 유의어 고려 못 함 이에 대한 해결 방법 1) Add-one (Laplace) Smoothing : 모든 단어를 한 번 더 본 셈 친다 * N-gram처럼 0이 너무 많은 분야에선..
2019.12.04 -
Minimum Edit Distance
Edit Distance : 한 스트링이 다른 스트링으로 되기까지 필요한 editing operation의 최소 횟수 editing operation : insertion(1), deletion(1), substitution(2) (괄호 안은 각 operation의 cost, Levenshtein) * Levenshtein은 substitution의 cost를 2로 본다 ∵ insertion(1) + deletion(1) = substitution(2) 모든 distance 계산하기 어려움. 그래서 Dynamic Programming 도입 Dynamic Programming - 복잡한 계산 = subproblems를 합쳐서 구해가기 - bottom-up 방식 예를 들어, INTENTION을 EXECUTI..
2019.12.04 -
정규표현식 정리
[ ] 괄호 안의 single character [abc] : a 또는 b 또는 c [ab]* : None 또는 aaaa 또는 abba [0-9] : 숫자 = \d (반대는 [^0-9] = \D) [A-Za-z] : 영어 대소문자 (아스키값은 대문자가 먼저) [A-Za-z0-9_] : 영어 대소문자 + 숫자 + underscore(_) = \w (반대는 \W) [\f\n\r\f\v] : 공백자들 = \s (반대는 \S) ^의 의미 1) \^ : 문자 그대로 ^ 2) [ ] 맨 앞에서 부정의 의미 (ex) [^e] : e 빼고 아무나 한 글자 cf. [e^] : e 또는 ^ 한 글자 3) 스트링의 시작 (ex) ^a : a로 시작하는 스트링 스트링의 시작 1) ^the : 줄바꿈 단위로 하나의 스트링 2)..
2019.12.04