Oneulog

Bag of Words란 Bag of Words란 단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도에만 집중하는 텍스트 데이터의 수치화 표현 방법이다. Bag of Words를 직역하면 단어들의 가방이라는 의미이다. 단어들이 들어있는 가방을 상상해보자. 갖고 있는 어떤 텍스트 문서에 있는 단어들을 가방에다가 전부 넣는다. 그 후에 이 가방을 흔들어 단어들을 섞는다. 만약, 해당 문서 내에서 특정 단어가 N번 등장했다면, 이 가방에는 그 특정 단어가 N개 있게 된다. 또한 가방을 흔들어가 단어를 섞었기 떄문에 더 이상 단어의 순서는 중요하지 않다. BoW를 만드는 과정을 이렇게 두 가지 과정으로 생각해보자. 1. 각 단어에 고요한 정수 인덱스를 부여한다. # 단어 집합 생성 2. 각 인덱스의 위치에..
단어의 표현 방법 단어의 표현 방법은 크게 국소 표현과 분산 표현으로 나뉜다. 국소 표현 방법은 해당 단어 그 자체만 보고, 특정값을 매핑하여 단어를 표현하는 방법이며, 분산 표현 방법은 그 단어를 표현하고자 주변을 참고하여 단어를 표현하는 방법이다. 예를 들어 puppy(강아지), cute(귀여운), lovely(사랑스러운)라는 단어가 있을 때 각 단어에 1번, 2번, 3번 등과 같은 숫자를 매핑하여 부여한다면 이는 국소 표현 방법에 해당된다. 반면, 분산 표현 방법의 예를 하나 들어보면 해당 단어를 표현하기 위해 주변 단어를 참고한다. puppy라는 단어는 cute, lovely한 느낌이다로 단어를 정의한다. 이렇게 되면 이 두 방법의 차이는 국소 표현 방법은 단어의 의미, 뉘앙스를 표현할 수 없지만..
자연어 처리에서 텍스트를 표현하는 방법으로는 여러 가지 방법이 있다. 그 중 DTM(Document Term Matrix)과 TF-IDF(Term Frequency-Inverse Document Frequency)는 정보 검색과 텍스트 마이닝 분야에서 주로 사용되는 카운트 기반의 텍스트 표현 방법이다. 텍스트를 위와 같은 방식으로 수치화를 하고 나면, 통계적인 접근 방법을 통해 여러 문서로 이루어진 텍스트 데이터가 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내거나, 문서의 핵심어 추출, 검색 엔진에서 검색 결과의 순위 결정, 문서들 간의 유사도를 구하는 등의 용도로 사용할 수 있다.
두 개의 모델 A, B가 있을 때 이 모델의 성능은 어떻게 비교할 수 있을까? 두 개의 모델을 오타 교정, 기계 번역 등의 평가에 투입해볼 수 있다. 그리고 두 모델이 해당 업무의 성능을 누가 더 잘했는지를 비교하면 된다. 그런데 두 모델의 성능을 비교하고자, 일일히 모델들에 대해서 실제 작업을 시켜보고 정확도를 비교하는 작업은 공수가 너무 많이 드는 작업이다. 만약 비교해야 하는 모델이 두 개가 아니라 그 이상의 수라면 시간은 비교해야 하는 모델의 수만큼 배로 늘어날 수도 있다. 이러한 평가보다는 어쩌면 조금은 부정확할 수는 있어도 테스트 데이터에 대해서 빠르게 식으로 계산되는 더 간단한 평가 방법이 있다. 바로 모델 내에서 자신의 성능을 수치화하여 결과를 내놓는 펄플랙시티(perplexity)이다. ..
영어나 기타 언어에 비해서 한국어는 언어 모델로 다음 단어를 예측하기가 훨씬 까다롭다. 한국어는 어순이 중요하지 않다. 한국어에서는 어순이 중요하지 않다. 그래서 이전 단어가 주어졌을 때, 다음 단어가 나타날 확률을 구해야 하는데 어순이 중요하지 않다는 것은 다음 단어로 어떤 단어든 등장할 수 있다는 의미이다. 1. 나는 운동을 합니다 체육관에서. 2. 나는 체육관에서 운동을 합니다. 3. 체육관에서 운동을 합니다. 4. 나는 운동을 체육관에서 합니다. 위의 4개의 문장은 전부 의미가 통하는 것을 볼 수 있다. 심지어 '나는' 이라는 주어를 생략해도 말이 되어버린다. 이렇게 단어 순서를 뒤죽박죽으로 바꾸어놔도 한국어는 의미가 전달되기 때무에 확률에 기반한 언어 모델이 제대로 다음 단어를 예측하기가 어렵다..
N-gram 언어 모델은 카운트에 기반한 통계적 접근을 사용하고 있으므로 SLM의 일종이다. 다만, 앞서 배운 언어 모델과는 달리 이전에 등장한 모든 단어를 고려하는 것이 아니라 일부 단어만 고려하는 접근 방법을 사용한다. 그리고 이때 일부 단어를 몇 개 보느냐를 결정하는데 이것이 N-gram에서의 n이 가지는 의미이다. 코퍼스에서 카운트하지 못하는 경우의 감소 SLM의 한계는 훈련 코퍼스에 확률을 계산하고 싶은 문장이나 단어가 없을 수 있다는 점이다. 그리고 확률을 계산하고 싶은 문장이 길어질수록 갖고있는 코퍼스에서 그 문장이 존재하지 않을 가능성이 높다. 즉, 카운트할 수 없을 가능성이 높다. 하지만 다음과 같이 참고하는 단어들을 줄이면 카운트를 할 수 있을 가능성을 높일 수 있다. 가령, An ad..
언어 모델의 전통적인 접근 방법인 통계적 언어 모델이다. 통계적 언어 모델이 통계적인 접근 방법으로 어떻게 언어를 모델링하는지 보자. 통계적 언어 모델(Statistical Language Model)은 줄여서 SLM이라고도 한다. 조건부 확률 조건부 확률은 두 확률 P(A), P(B)에 대해서 아래와 같은 관계를 가진다. 더 많은 확률에 대해서 일반화해보자. 4개의 확률이 조건부 확률의 관계를 가질 때, 아래와 같이 표현할 수 있다. 이를 조건부 확률의 연쇄 법칙이라고 한다. 이제는 4개가 아닌 n개에 대해서 일반화를 해 보자. 이처럼 조건부 확률에 대한 정의를 통해 문장의 확률을 구해보자. 문장에 대한 확률 문장 'An adorable little boy is spreading smiles'의 확률 ..
통계 기반의 언어 모델 언어 모델은 단어 시퀀스에 확률을 할당하는 일을 하는 모델이다. 이를 조금 풀어서 쓰면, 언어 모델은 가장 자연스러운 단어 시퀀스를 찾아내는 모델이다. 단어 시퀀스에 확률을 할당하게 하기 위해서 가장 보편적으로 사용되는 방법은 언어 모델이 이전 단어들이 주어졌을 때 다음 단어를 예측하도록 하는 것이다. 단어 시퀀스의 확률 할당 자연어 처리에서 단어 시퀀스에 확률을 할당하는 일이 왜 필요할까? 예를 들어보자. 기계 번역(Machine Translation) P(나는 버스를 탔다) > P(나는 버스를 태운다) 언어 모델은 두 문장을 비교하여 좌측의 문장의 확률이 더 높다고 판단한다. 오타 교정(Spell Correlation) 선생님이 교실로 부리나케 P(달려갔다) > P(잘려갔다) ..
NLP Developer
'NLP' 카테고리의 글 목록 (3 Page)