오늘은 주로 찐코딩님의 NLP 관련 2,3강을 듣는데 많은 시간으로 썼던 것 같다.
아직 강의 초반이다보니까, numpy, terminal, 파이썬 기본 문법 같은 것들 익숙해지는 시간들이 많았고, 추가적으로는 ML 대학원 주제 발표 중간중간 보는 시간도 가졌다.좀 더 개념들 정리하느라 어제 배운건데, 오늘 업로드하게 되었음.
데이터 전처리
자연어 처리는 딥러닝이 오기 전부터 연구가 되었던 분야였음.
그 당시에는 텍스트에 대한 Feature Extraction이 주요했지만 최근에는 딥러닝이 학습할 하나라고 생각하고 다 학습시켜버리는 추세여서, 이 부분에서 해결하려는 문제의 중요성이 낮아졌고 이를 처리 안하고 바로 딥러닝을 돌리는 경우도 있다.
그럼에도 불구하고 우선 자연어 데이터 전처리를 정리해보자면, 텍스트에서 의미 있는 요소를 뽑아내기 위한 작업들의 일환이라고 보면 편하다.
Tokenizer : 의미있는 최소한의 단위로 단어들을 쪼개는 작업
Cleaning : 너무 많은 토큰들을 다 비교하게 되면, 학습시켜야할 데이터가 너무 많기 때문에 이를 제외하는 작업
Embedding
Word2Vec
기타
1. 허깅페이스 데이터셋 활용법
pip install datasets #터미널에서 할때
!pip install datasets # 주피터 노트북에서 실행할 때
2) 설치가 완료되면 자신이 활용하고 싶은 데이터셋을 찾는다.
from datasets import load_dataset
ScienceQA = load_dataset("derek-thomas/ScienceQA", split = "test")
{dataset_name}은 허깅페이스 데이터셋 상세페이지에 보면, 데이터셋 이름이 있다. 혹은 아래 빨간색 표시된 곳을 누르면 데이터셋 이름이 복사된다.

추가로, load_dataset에는 split이라는 인자를 줄 수 있는데 데이터셋은 주로 train, validation, test으로 나눌 수 있기 때문에 이에 대해서 지정해서 가져올 수 있다.
3) 데이터셋이 잘 들어왔는지 확인하고, 주로 데이터셋 접근은 feature 레벨로 접근가능하다.
print(ScienceQA[100]) #100번째열의 데이터를 가져오는 것
print(ScienceQA) #데이터셋 정보를 가져오는 것
print([ScienceQA[columns][:5] for columns in ["question", "answer"]])
3번째 코드는 2개 이상의 키의 값을 가져오기 위한 용도이다.
참고 사이트
1. 자연어 처리 입문 : https://wikidocs.net/21693
2. 센텐스피스 설명 : https://velog.io/@gibonki77/SentencePiece