본문 바로가기

NLP

(8)
[Chapter 6] Hidden Markov Model Hidden Markov Model Markov Chain의 경우 실제 세계에서 관찰되는 연속된 사건의 확률을 계산할 때 사용된다. NLP에서 Part-Of-Speech-Tag처럼 현실 세계에서 관찰되지 않는 것이 있다. Hidden Markov Model은 관찰, 미관찰되는 연속된 사건의 확률을 사용하는 모델이다. Component Of Hidden Markov Model Markov Chain은 Set of State, Transition Probability Matrix, Start & End State 로 이루어져있다. Hidden Markov Model은 앞 3가지에 Sequence of Observation, Sequence of Observation Likelihood가 추가된 요소로 이루어..
[Chapter 6] Markov Chains Markov Chain Hidden Markov Model를 정의하기 위해 Markov chain( observed Markov Model )에 대해 알아야 한다. Markov Chain은 Sequence 값이 입력될 경우 유일한 하나의 State를 결정하는 Weighted Finite-State Automaton의 특수한 경우이다. 모호성 문제가 없기 때문이다.(?) Markov Chain As Graphical Model Markov Chain의 그래프 모델의 구성 요소는 Set of States, Transition Probability Matrix, Start State & End Satate로 구성된다. Transition Probability Matrix의 합 $a_{01} + a_{02} +..
[Chapter 5] Part Of Speech Tagging (2) 1. Rule Based Part Of Speech Tagging 규칙 기반 태깅은 사전을 통해 각 단어에 잠재적 품사 목록을 만든다. 단어에 할당된 품사가 2개 이상인 경우 규칙을 통해 가장 적합한 품사를 정하는 방식이다. 규칙을 통한 품사를 정하는 건 해당 단어의 앞뒤 단어와 함께 이루어진다. 2. Step 1 사전을 통해 단어의 잠재적 품사 목록을 가져온다. 단어에 할당되는 품사는 TagSet에 따라 달라질 수 있다. shownSHOW PCP2 SVOO SVO SV that ADV PRON DEM SG DET CENTERAL DEM SG CS 3. Step 2 규칙을 통해 가장 적합한 품사를 정하는 건 품사 목록에서 적합하지 않은 것을 제거하는 방식으로 진행된다. 조건에서 양수는 해당 단어의 뒤 단..
Bigram Model 구현해보기 책을 보고 Unsmooth Bigram Model 구현 코드를 Python으로 코드를 작성했다. Unknown Word와 특정 단어의 반복 문제 등이 있는 Model이다. 개념을 코드로 구현해보기 위한 것이니 고려해서 보면 좋을 것 같다. 1. Train Corpus 로딩 with open(Corpus 파일 경로, 'r') as fr: contents = fr.read() 2. Bigram 단어 개수 Dictionary 생성 Corpus을 줄과 White Space(' ')기준으로 분리해 Bigram Model에 사용할 단어 개수 Dictionary를 생성 lines = contents.split('\n') word_count_for_bigram_dic = {} for line in lines : seq..
[Chapter4] N-gram 평가 방법 평가 방식 1. Extrinsic Evaluation (in vivo) 방식 end-to-end 방식으로 적용하려는 어플리케이션에서 각 모델을 수행함으로 성능 비교를 한다. 높은 정확도를 얻을 수 있지만 시간 비용이 높을 수 있다. 2. Intrinsic Evaluation 방식 어플리케이션에 독립적으로 모델의 성능을 평가할 수 있는 방식이다. 일반적으로 Extrinsic Evaluation 평가보다 속도가 빠르다. 일반적으로 많이 쓰이는 방식은 Perplexity 값을 구해 모델의 성능을 비교하는 것이다. Perplexity ? Perplexity는 언어 모델과 Test-Set을 통해 확률을 구해 단어 개수로 정규화한 값이다. Perplexity는 두 확률 모델이 주어졌을 때, Test-Data에서 예..
[Chapter 5] Part Of Speech Tagging (1) Part-of-Speech Tagging 필요 이유 단어와 주변 단어에 대한 정보를 제공해준다. 음성인식 모델, 자연스러운 발음을 할 수 있는 TTS 시스템, 정보 검색 Stemming 과정에서 활용될 수 있다. 자연스러운 TTS에 사용될 수 있는 예 [대문자는 악센트] content : CONtent [명사] conTENT [형용사] object : OBject [명사] obJECT [동사] discount : DIScount [명사] disCOUNT [동사] Part-of-Speech ? 영어권에서는 8 품사를 가지고 있으며, Closed Class와 Open Class로 분류할 수 있다. Closed Class는 단어의 집합이 고정되어 있는 품사들의 집합을 말한다. Open Class는 단어의 집합..
단어 수를 세기 위해 기준이 되는 용어 NLP에서는 Corpus(Corpora)의 단어 수를 사용한다. 단어를 셀 때 기준이 되는 것은 무엇일까? 문장에서 Punctuation을 단어로 취급 유무에 따라 한 문장을 이루고 있는 단어의 개수는 달라진다. Punctuation은 온점(.), 쉼표(,), 물음표(?) 등을 포함하며, 문장 간의 경계와 물음표같이 의미를 식별하는 기준으로 사용된다. He stepped out into the hall, was delighted to encounter a water brother. Punctuation 미포함 단어 개수 : 13개 Punctuation 포함된 단어 개수 : 15개 Disfluencies는 깨진 단어를 나타내는 Fragment와 영어의 uh와 um같은 단어를 나타내는 Filler(Fille..
[Chapter 4 ] N-gram 공부 정리 2022.05.15 (일) N-gram 장에서는 단어 예측과 예측에 대한 신뢰성을 다루고 있다. 단어 예측의 경우 전체 문장에서 예측 단어가 나올 확률을 구하는 방식을 사용한다. 이것을 매번 계산하는건 자원의 소모가 크다. 예측 단어 앞 N-1개의 단어를 통해 근사치의 확률을 구한다. 이를 통해 생성할 수 있는 모델이 N-gram이다. $P(w_{n}|w_{n-1}^{1})\approx P(w_{n}|w_{n-1}^{n-N+1})$ N-gram은 N의 개수에 따라 Unigram(1), Bigram(2), Trigram(3)등으로 분류가 된다. N의 개수에 따라 모델의 정확도는 올라가지만 계산 속도는 느려진다. 이처럼 정확도와 계산속도가 Trade-Off 관계이기에, 일반적으로 N을 5이하의 값으로 설정하..