회고기간 : 2025.04.07월~2025.04.11금
이번 주차는 NLP의 subword tokenizer, 워드 임베딩, 등을 배웠다.
0407월
Subword Tokenizer
- 서브워드 분리는 하나의 단어를 더 작은 단위로 쪼개 의미있는 조합으로 구성
- 하나의 단어를 여러 서브워드로 분리해 단어를 인코딩 및 임베딩 할 수 있음
import sentencepiece as spm
# 모델 학습
input = 'naver_review.txt' # 학습해야 하는 학습 데이터셋 경로
vocab_size = 10000 # 결과로 만들 token의 개수 (사전의 크기)
model_prefix = 'naver_review' # 학습에 대한 결과물 이름 지정
cmd = f'--input={input} --model_prefix={model_prefix} --vocab_size={vocab_size}' # 설정한대로 모델 학습 (사용 편의를 위해 미리 변수명 지정한거임)
spm.SentencePieceTrainer.Train(cmd)
# Tokenizing
sp = spm.SentencePieceProcessor()
sp.Load(f'{model_prefix}.model')
text = ratings_test_df['document'][100]
tokens = sp.encode_as_pieces(text) # tokenize된 token의 결과
id_tokens = sp.encode_as_ids(text) # tokenize된 token들의 id값
print(text)
print(tokens)
print(id_tokens)
걸작은 몇안되고 졸작들만 넘쳐난다.
['▁걸작', '은', '▁몇', '안되고', '▁졸작', '들만', '▁넘', '쳐', '난다', '.']
[1060, 18, 621, 6979, 728, 3291, 165, 705, 1003, 4]
print("".join(tokens).replace("_", "").strip()) # 각 토큰끼리 join하고 _를 공백으로 대체
print(sp.decode_pieces(tokens)) # decode를 통해 원래 token으로 복원
print(sp.decode_ids(id_tokens)) # decode를 통해 원래 id로 복원
▁걸작은▁몇안되고▁졸작들만▁넘쳐난다.
걸작은 몇안되고 졸작들만 넘쳐난다.
걸작은 몇안되고 졸작들만 넘쳐난다.
13-04 허깅페이스 토크나이저(Huggingface Tokenizer)
자연어 처리 스타트업 허깅페이스가 개발한 패키지 tokenizers는 자주 등장하는 서브워드들을 하나의 토큰으로 취급하는 다양한 서브워드 토크나이저를 제공합니다. 이번 실습에서는…
wikidocs.net
Word Embedding (단어표현)
- word embedding 은 단어를 고정된 차원의 벡터로 변환하는 기술로, 단어간의 의미적 유사성을 반영하도록 학습된 벡터를 말한다.
- 연관성 있는 단어들을 군집화하여 다차원 공간에 벡터로 나타낼 수 있으며, 이는 단어나 문장을 벡터 공간에 매핑하는 과정이다
0408화
Fasttext
RNN
0409수
LSTM
GRU
텍스트 분류기 (나이브베이즈, RNN, multi label)
0410목
NER( named entity recognition)