본문 바로가기
Study (Data Science)/NLP

토큰화 / 인덱싱 / 벡터화 / 임베딩

by 콜라찡 2023. 2. 22.

토큰화

split 하는 것. 이 때에 띄어쓰기나 형태소 단위로 끊어줄 수 있음

 

인덱싱

각 단어를 고유한 번호(인덱스)로 매핑하는 것

의미나 관계를 고려하지는 않음.

 

벡터화

단어나 텍스트를 수치화하는 작업 중 하나

각 단어나 문장을 수치 벡터로 변환하는 것을 의미

단어나 텍스트를 고차원 벡터로 변환

인덱싱과 다르게 단어의 의미나 관련성을 고려

빈도기준의 DTM,

빈도+문서간관계 TD-IDF,

독립적인 관계 One-Hot,

분포로 잠재 의미를 담아내는 LSA,

(LSA는 희소 vector가 아니라 희소 matrix를 밀집 행렬로 바꾼거라 임베딩이라 하지 않고 벡터화에 속함)

분포로 단어의 토픽을 찾아내는 LDA,

(LDA는 벡터에 확률 분포가 들어감)

임베딩 (like. 2차 벡터화)

벡터화되어 고차원으로 표현된 단어들이 너무 sparse해서 dense vector로 바꿔주는 것

인덱싱의 DTM, TF-IDF, 원-핫 벡터는 너무 희소벡터 sparse vector가 많아서

이를 밀집 벡터 dense vector로 바꾸어 0이나 1 이 아닌 모두 float 형식의 벡터를 가지게 만드는 것

벡터화보다는 차원이 적고, 단어의 의미를 담아낸 벡터들

단어단위의 단어 임베딩이 자주 쓰이며, 종류로는 Word2Vec, GloVe, FastText, BERT 이 있음.

 

Keras 주요 함수들

fit_on_text : text 에 숫자를 매핑해서 

word_index : 단어사전을 출력. 하지만 인덱스가 앞에 있다고 빈도수가 높은것은 아님.

texts_to_sequences : 단어사전을 기준으로 문자 > 숫자로 바꿔줌

sequences_to_texts : 숫자 > 문자 디코딩

to_cateorical : 숫자로 바꿔둔 것을 바탕으로 해당 단어들을 원핫인코딩 함. 단어들이 많으면 길이가 길어짐

728x90

댓글