일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 원-핫 인코딩
- 전이학습
- 양방향 RNN
- 시계열 분석
- 임베딩
- 망각 게이트
- 자연어 전처리
- COLAB
- 성능 최적화
- 과적합
- 프로그래머스
- 클러스터링
- 카운트 벡터
- 코랩
- 출력층
- 코딩테스트
- 생성모델
- KONLPY
- 입력층
- 이미지 분류
- 합성곱 신경망
- RNN
- cnn
- 텍스트 마이닝
- NLTK
- 딥러닝
- 합성곱층
- 순환 신경망
- 풀링층
- 완전연결층
- Today
- Total
목록자연어 전처리 (10)
Colab으로 하루에 하나씩 딥러닝

한국어 임베딩 한국어도 영어와 동일하게 임베딩을 진행 한국어 임베딩 진행 코드 ### 예제를 진행할 텍스트 생성 import numpy as np from tensorflow.keras.preprocessing.text import Tokenizer from tensorflow.keras.preprocessing.sequence import pad_sequences text = """과일 가게에 사과가 많이 진열되어 있다 그녀가 나에세 사과한 후, 우리는 친해졌다 애플은 사과 모양을 로고로 사용한다\n""" ### 텍스트 토큰화 tok = Tokenizer() # Tokenizer 객체 생성 tok.fit_on_texts([text]) vocSize = len(tok.word_index) + 1 seqs..

횟수/예측 기반 임베딩 앞선 횟수 기반과 예측 기반의 단점을 보완하기 위한 임베딩 기법으로 글로브를 사용 글로브(GloVe, Global Vectors for Word Representation) 횟수 기반의 LSA(Latent Semantic Analysis,잠재 의미 분석)와 예측 기반의 워드투벡터 단점을 보완하기 위한 모델 단어에 대한 글로벌 동시 발생확률 정보를 포함하는 단어 임베딩 => skip-gram을 합친 방식 skip-gram을 방법을 사용하되 통계적 기법이 추가됨 더보기 아래의 코드는 glove.6B.zip의 glove.6B.100d.txt를 참조하였습니다. 출처: https://nlp.stanford.edu/projects/glove/ ### 라이브러리 호출 및 데이터셋 로딩 impo..

예측 기반 임베딩 신경망 구조 혹은 모델을 이용하여 특정 문맥에서 어떤 단어가 나올지 예측하면서 단어를 벡터로 만드는 방식 대표적으로 워드투벡터가 있음 워드투벡터(Word2Vec) 신경망 알고리즘으로 주어진 텍스트에서 텍스트의 각 단어마다 하나씩 일련의 벡터를 출력함 코사인 유사도를 이용하여 특정 단어의 동의어를 찾을 수 있음 수행 과정 일정한 크기의 윈도우로 분할된 텍스트를 신경망 입력으로 사용 모든 분할된 텍스트는 한 쌍의 대상 단어와 컨텍스트로 네트워크에 공급 네트워크의 은닉층에는 각 단어에 대한 가중치가 포함 됨 더보기 아래의 코드 중 peter.txt는 피터팬 무료 이북 텍스트를 참조하였습니다. 출처: https://www.gutenberg.org/files/16/16-h/16-h.htm ###..

횟수 기반 임베딩 단어가 출현한 빈도를 고려하여 임베딩하는 방법 대표적으로 카운터 벡터와 TF-IDF가 존재 카운터 벡터(Counter Vector) 문서 집합에서 단어를 토큰으로 생성하고 각 단어의 출현 빈도수를 이용하여 인코딩해서 벡터를 만드는 방법 토크나이징과 벡터화가 동시에 가능 ### 코퍼스에 카운터 벡터 적용 from sklearn.feature_extraction.text import CountVectorizer corpus = [ 'This is last chance.', 'and if you do not have this chance.', 'you will never get any chance.', 'will you do get this one?', 'please, get this cha..

임베딩(Embedding) 사람이 사용하는 언어(자연어)를 컴퓨터가 이해할 수 있는 언어(숫자) 형태인 벡터(vector)로 변환한 결과 혹은 일련의 과정 단어 및 문장 간 관련성 계산 의미적 혹은 문법적 정보의 함축 임베딩 방법에 따라 희소 표현 기반 임베딩, 횟수 기반 임베딩, 예측 기반 임베딩, 횟수/예측 기반 임베딩이 존재 희소 표현 기반 임베딩(sparse representation embedding) 대부분의 값이 0으로 채워져 있음 대표적으로 원-핫 인코딩이 있음 원-핫 인코딩(one - hot encoding) 주어진 단어 N개를 각각 N차원의 벡터로 표현하는 방식 단어가 포함되어 있는 위치에 1을 넣고 나머지에는 0 값을 채움 딕셔너리에 [apple, banana, cherry]의 값이 ..

정규화 표현 방법이 다른 단어들을 통합시켜서 같은 단어로 만들어 주는 것 각각의 데이터가 갖는 스케일 차이가 크면, 상대적으로 큰 값의 범위를 갖는 것이 더 많은 영향을 미침 MonthlyIncome이 0~10,000의 범위를 갖고 RelationshipSatisfaction이 0~5의 범위를 가질 때, 상대적으로 MonthlyIncome이 더 많은 영향을 미침 정규화 실습(사전 준비) 동일한 데이터셋을 이용하여 정규화를 진행했을 때와 진행하지 않았을 때의 정확도 비교 데이터셋은 https://datahub.io/machine-learning/covertype에서 아래와 같은 csv 파일 사용 파일을 구글 드라이브에 저장하고 마운트하여 진행함 정규화 실습(정규화하지 않았을 때) ### 라이브러리 호출 i..

어간 추출(stemming) / 표제어 추출(lemmatization) 단어의 원형을 찾아 주는 것 단어 그 자체만 고려하기 때문에 품사가 달라도 사용 가능 어간 추출과 표제어 추출이 공통적으로 어근 추출이 목적 어간 추출은 사전에 없는 단어도 추출할 수 있지만 표제어 추출은 사전에 있는 단어만 추출할 수 있음 포터 알고리즘 단어의 원형이 비교적 잘 보전되어 있음 ### 포터 알고리즘 from nltk.stem import PorterStemmer stemmer = PorterStemmer() print(stemmer.stem('obsesses'), stemmer.stem('obsessed')) print(stemmer.stem('standardizes'), stemmer.stem('standardiza..

불용어 문장 내에서 빈번하게 발생하여 의미를 부여하기 어려운 단어 자연어 처리에 있어 효율성을 감소시키며, 처리 시간을 길게하기 때문에 반드시 제거해야 함 ex) 'a/an', 'the', 'of', ... ### 불용어 제거 import nltk from nltk.corpus import stopwords nltk.download('stopwords') nltk.download('punkt') from nltk.tokenize import word_tokenize sample_text = """One of the first things that we ask ourselves is what are the pros and cons of any task wwe perform.""" text_tokens = ..