본문 바로가기

전체 글

(413)
원-핫 인코딩(One-Hot Encoding) 원-핫 인코딩을 위해서 단어 집합을 만들고 고유한 정수를 부여하는 정수 인코딩을 진행합니다 단어 집합 : 서로 다른 단어들의 집합으로 단어의 변형 형태도 다른 단어로 간주된다. 1. 원-핫 인코딩(One-Hot Encoding)이란? 원-핫 인코딩은 단어 집합의 크기를 벡터의 차원으로 하고, 표현하고 싶은 단어의 인덱스에 1의 값을 부여하고, 다른 인덱스에는 0을 부여하는 단어의 벡터 표현 방식입니다. 첫째, 정수 인코딩을 통해 각 단어에 고유한 정수를 부여합니다. 둘째, 표현하고 싶은 단어의 고유한 정수를 인덱스로 간주하고 해당 위치에 1을 부여하고, 다른 단어의 인덱스의 위치에는 0을 부여합니다. 각 토큰에 대해서 고유한 정수를 부여합니다. 빈도수 순으로 단어를 정렬하여 정수를 부여하는 경우가 많습니..
[오류log] No module named 'konlpy' 해결법1.'konlpy' 다운로드 pip install konlpy ModuleNotFoundError : No module named 'konlpy'일때, 밑에 NOTE부분에 보면 import is failing due to a missing package라고 패키지를 import 시켜주지 않아 생기는 오류이다. pip install konlpy를 통해 konlpy를 import시켜주고 다시 실행하면 이번에는 실행이 잘 되는 것을 볼 수 있다.
패딩(Padding) 자연어 처리를 하다보면 각 문장(또는 문서)은 서로 길이가 다를 수 있습니다. 기계어의 병렬 연산을 위해서 여러 문장의 길이를 임의로 동일하게 맞춰주는 작업이 필요할 때가 있습니다. 1.Numpy로 패딩하기 단어 집합을 만들고, 정수 인코딩을 수행합니다. 모든 단어가 고유한 정수로 변환되었습니다. 모두 동일한 길이로 맞춰주기 위해서 이 중에서 가장 길이가 긴 문장의 길이를 계산해보겠습니다. 모든 문장의 길이를 숫자 0을 채워 가장 길이가 긴 문장의 길이로 맞춥니다. 기계는 이들을 하나의 행렬로 보고, 병렬 처리를 할 수 있습니다. 또한, 0번 단어는 사실 아무런 의미도 없는 단어이기 때문에 자연어 처리하는 과정에서 기계는 0번 단어를 무시하게 될 것입니다. 이와 같이 데이터에 특정 값을 채워서 데이터의 ..
정수 인코딩(Integer Encoding) 컴퓨터는 텍스트보다는 숫자를 더 잘 처리 할 수 있음 각 단어를 고유한 정수에 맵핑(mapping)시키는 전처리 작업 진행 랜덤으로 부여하기도 하지만, 보통은 단어 등장 빈도수를 기준으로 정렬한 뒤에 부여합니다. 1. 정수 인코딩(Integer Encoding) 단어를 빈도수 순으로 정렬한 단어 집합(vocabulary)을 만들고, 빈도수가 높은 순서대로 차례로 낮은 숫자부터 정수를 부여 1) dictionary 사용하기 문장 토큰화 수행 이제 정제 작업과 정규화 작업을 병행하며, 단어 토큰화를 수행합니다. 단어들을 소문자화하여 단어의 개수를 통일시키고, 불용어와 단어 길이가 2이하인 경우에 대해서 단어를 일부 제외시켜주었습니다. vocab에는 각 단어에 대한 빈도수가 기록되어있음 파이썬의 딕셔너리 구조..
정규 표현식(Regular Expression) 1.정규 표현식 문법과 모듈 함수 파이썬에서는 정규 표현식 모듈 re을 지원 1) 정규 표현식 문법 특수 문자설명 . 한 개의 임의의 문자를 나타냅니다. (줄바꿈 문자인 \n는 제외) ? 앞의 문자가 존재할 수도 있고, 존재하지 않을 수도 있습니다. (문자가 0개 또는 1개) * 앞의 문자가 무한개로 존재할 수도 있고, 존재하지 않을 수도 있습니다. (문자가 0개 이상) + 앞의 문자가 최소 한 개 이상 존재합니다. (문자가 1개 이상) ^ 뒤의 문자열로 문자열이 시작됩니다. $ 앞의 문자열로 문자열이 끝납니다. {숫자} 숫자만큼 반복합니다. {숫자1, 숫자2} 숫자1 이상 숫자2 이하만큼 반복합니다. ?, *, +를 이것으로 대체할 수 있습니다. {숫자,} 숫자 이상만큼 반복합니다. [ ] 대괄호 안의..
불용어(Stopword) 불용어(Stopword) 유의미한 단어 토큰만을 선별하기 위해 조사, 접미사 같은 자주 등장하지만 분석을 하는 것에 있어서는 큰 도움이 되지 않는 단어들을 제거하는 과정이 필요하다. 1.NLTK에서 불용어 확인하기 NLTK에서는 패키지 내에서 미리 정의하고 있는 불용어 리스트 확인 2.NLTK를 통해서 불용어 제거하기 NLTK의 word_tokenize를 통해서 단어 토큰화를 수행.->불용어 제거 3.한국어에서 불용어 제거하기 한국어에서 불용어를 제거하는 방법으로는 간단하게는 토큰화 후에 조사, 접속사 등을 제거하는 방법이 있습니다. 하지만 명사, 형용사와 같은 단어들 중에서 불용어로서 제거하고 싶은 단어들이 생길때 사용자가 직접 불용어 사전을 만들기도 한다. 불용어가 많은 경우에는 코드 내에서 직접 정..
어간 추출(Stemming) and 표제어 추출(Lemmatization) 정규화 기법 : 코퍼스 복잡성 감소 * 코퍼스에 있는 단어의 개수를 줄일 수 있는 기법 : 표제어 추출(lemmatization)과 어간 추출(stemming) - 하나의 단어로 일반화시켜서 문서 내의 단어 수를 줄이는것 표제어 추출(Lemmatization)과 어간 추출(Stemming)은 코퍼스의 복잡성을 감소시키는 기법으로, 하나의 단어로 일반화시켜서 문서 내의 단어 수를 줄입니다. 1. 표제어 추출(Lemmatization) 단어의 원형을 찾아서 문서 내에 동일한 원형의 단어가 있는 경우에 하나의 단어로 일반화시키는 방법 * 표제어(Lemma) : '기본 사전형 단어'의 의미 단어들이 다른 형태를 가지더라도, 그 뿌리 단어를 찾아가서 단어의 개수를 줄일 수 있는지 판단합니다 표제어 추출은 문서에서..
정제(Cleaning) and 정규화(Normalization) 정제(Cleaning) and 정규화(Normalization) 토큰화(Tokenization) : 코퍼스에서 용도에 맞게 토큰을 분류하는 작업 토큰화 작업 전, 후에는 텍스트 데이터를 용도에 맞게 정제(cleaning) 및 정규화(normalization)한다. 정제(cleaning) : 갖고 있는 코퍼스로부터 노이즈 데이터를 제거한다. 정규화(normalization) : 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만들어준다. 1. 규칙에 기반한 표기가 다른 단어들의 통합 같은 의미를 갖고있음에도, 표기가 다른 단어들을 하나의 단어로 정규화하는 방법 2. 대, 소문자 통합 대문자를 소문자로 변환하는 소문자 변환 작업 : 영어권 언어에서 대문자는 문장의 맨 앞 등과 같은 특정 상황에서만 쓰이고,..