Bag of Words(BoW)
·
머신러닝/딥러닝을 이용한 자연어처리 입문
1. Bag of Words란? Bag of Words란 단어들의 순서는 전혀 고려하지 않고, 오직 단어들의 출현 빈도에만 집중하는 텍스트 데이터의 수치화 표현 방법이다. 직역하면 단어들의 가방이라는 의미이다. 단어들이 들어있는 가방이있다. 갖고있는 텍스트 문서에 있는 단어들을 가방에 전부 넣어 흔들고 섞었다 만약 문서에 특정 단어가 N번 등장 했다면, 이 가방에는 그 특정 단어가 N개있게 된다. 가방을 흔들어서 단어를 섞었기 때문에 순서는 중요하지 않다. BoW 만드는 과정 (1) 우선, 각 단어에 고유한 정수 인덱스를 부여한다. (2) 각 인덱스의 위치에 단어 토큰의 등장 횟수를 기록한 벡터를 만든다. ※예시※ 문서: 정부가 발표하는 물가상승률과 소비자가 느끼는 물가상승률은 다르다. from konl..
원-핫 인코딩(One-hot encoding)
·
머신러닝/딥러닝을 이용한 자연어처리 입문
1. 원-핫 인코딩(One-hot encoding)이란? 자연어 처리에서는 문자를 숫자로 바꾸는 여러 가지 기법들이 있습니다. 그중에서도 가장 기본적인 표현방법이 바로 원-핫 인코딩이라는 표현방법이다. 단어 집합의 크기를 벡터으 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식이다. 이렇게 표현된 벡터를 원-핫 벡터(One-hot vector)라고 한다. 원-핫 인코딩의 두 가지 과정 (1) 각 단어에 고유한 인덱스를 부여합니다. (정수 인코딩) (2) 표현하고 싶은 단어의 인덱스의 위치에 1을 부여하고, 다른 단어의 인덱스의 위치에는 0을 부여한다. ※예시※ 문장: 나는 자연어 처리를 배운다 from konlpy.tag import..
불용어(Stopword)
·
머신러닝/딥러닝을 이용한 자연어처리 입문
갖고 있는 데이터에서 유의미한 단어 토큰만을 선별하기 위해서는 큰 의미가 없는 단어 토큰을 제거하는 작업이 필요하다. 여기서 큰 의미가 없다는 것은 자주 등장하지만 분석을 하는 것에 있어서는 큰 도움이 되지 않는 단어들을 말한다. 예를 들면, I, my, me, over, 조사, 접미사 같은 단어들은 문장에서는 자주 등장하지만 실제 의미 분석을 하는 데는 거의 기여하는 바가 없다. 이러한 단어들을 불용어(stopword)라고 한다. 1. NLTK에서 불용어 확인하기 from nltk.corpus import stopwords stopwords.words('english')[:10] ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', ..
토큰화(Tokenization)
·
머신러닝/딥러닝을 이용한 자연어처리 입문
1. 단어 토큰화 토큰의 기준을 단어(word)로 하는 경우, 단어 토큰화(word tokenization)라고 한다. 다만, 여기서 단어(word)는 단어 단위 외에도 단어 구, 의미를 갖는 문자열로도 간주되기도 한다. 예를 들어보면, 구두점(punctuation)과 같은 문자는 제외시키는 간단한 단어 토큰화를 해보자. *구두점이란, 온점(.), 컴마(,), 물음표(?), 세미콜론(;), 느낌표(!) 등과 같은 기호를 말한다. 입력:Time is an illusion. Lunchtime double so! 이러한 입력으로 구두점을 제외 시킨 토큰화 작업을 한 결과는 다음과 같다. 출력 : "Time", "is", "an", "illustion", "Lunchtime", "double", "so" 이 예..