새싹일지

0726 새싹일지

gamnyam 2024. 7. 26. 17:13

머신러닝 / 딥러닝 프로세스 (데이터분석)

1. 데이터 수집,가공,적재(ETL, 추출(Extract), 변환(Transform), 로드(Load))
2. EDA(탐색적 데이터 분석)
3. 전처리(모델 학습에 input으로 쓸 수 있게 가공하는 작어을 필수로 포함 + Feature Engineering)
4. 모델링
5. 모델 학습/평가
6. 실제 예측/시각화

NLP(자연어처리) 프로세스

 

1. 데이터 -> 텍스트

2. EDA(게시글)

3. 전처리(문장 토큰화, 단어 토큰화 -> 품사부착 -> 원형복원(어간추출, 표제어추출) -> 불용어처리)

4. 모델링(키워드 추출, 문서요약, 감성분석, 토픽모델링, 문서분류)

5. 모델학습

6. 실제 예측 / 시각화

 

다양한 형태소 분석기

Kkma 토큰화 꼬꼬마

 

# n-gram이 가지는 의미

: 문맥적인 의미를 제한적으로 판단 가능

 

    bigram = ngrams(tokens, 2, pad_left=True, pad_right=True, left_pad_symbol="SS", right_pad_symbol="SE")

token = 2개

pad_left, right = SS, SE => 패딩 주는 느낌

 

 

단어의 표현(숫자화)

 

- 원핫인코딩

단어 수(유니크한 값)가 늘어나는 만큼 차원의 수가 늘어남

원핫인코딩을 쓸 수 있는 데이터 유형 : 상의/하의/신발

 

- 라벨인코딩

라벨인코딩을 쓸 수 있는 데이터 유형 : S M L XL XXL

사이즈처럼 증가하는 형태의 카테고리형(범주형) 데이터

 

원핫 인코딩 로직 작성하기

사이킷런 쓰지말고 로직구현하래

 

유사도 : 두 개의 벡터가 얼마나 가깝냐

원핫인코딩은 코사인 유사도가 0이 나옴

-> 코사인 유사도는 1에 가까울수록 유사하다고 판단

 

보통, 거리를 측정할 때 유클리디언 거리(피타고라스) 

-> 거리가 가까울수록 유사하다고 판단

 

ex)

원숭이 100

바나나 010

 

코사인유사도 -> 0

유클리드유사도 -> 루트2

 

바나나 사과(010, 001) -> 코사인 : 0, 유클리드 : 루트2

사람 바나나(0001, 0100) -> 코사인 : 0, 유클리드 : 루트2

=> 원핫인코딩 특성상 의미를 담지 못함

 

자카드 유사도

합집합에 대한 교집합 비율

 

ex)

A = 나는 / 책을 / 봤다

B = 나는 / 여행을 / 갔다

 

AUB = 나는 책을 여행을 봤 갔

A교B = 나는

=> 1/5

 

코사인 유사도

 

같은 방향을 바라볼땐 기울기 차이 0 (코사인유사도 0)

다른 방향 바라볼땐 기울기 차이 180 (코사인유사도 -1)

 

TF-IDF

단어의 빈도-역문서 빈도

 

단어가 다른 문서에 등장했는지 안했는지

다른 문서에 등장안하고 내 문서에만 등장하면 높은 점수 줌

 

역문서 빈도가 높다 : 다른 문서에서는 잘 등장하지않았다.

 

총 13개 문서 중

5개 문서에서 등장

 

df = 5/13

idf = 13/5

 

13개 문서 중

9개 문서에서 등장

 

df = 9/13(5개 등장했을 때 보다 커짐)

idf = 13/9(상대적으로 작아짐)

 

IDF 계산 시 log를 씌우는 이유

: 총 문서 수가 많아지는 경우 IDF 값이 기하급수적으로 커지기 때문

 

토큰1의 표현(벡터) : (0.03, 0.01, 0.05)

 

벡터 : 스칼라를 여러개 모은 것

스칼라 : 그냥 숫자

=> 벡터는 숫자를 여러개 모은 것

 

 

N-gram

Out of vocabulary : 단어사전에 등장하지않는 문제

 

단어 임베딩

word representation  : 단어 자체만 보는게 아니라 주변에는 어떤 단어가 있는지 확인

 

실습

원핫인코딩 로직

1은 핫함! 핫한게 하나!

 

 

def one_hot_encode(world_ls:list[str]) -> nd.ndarray :

자료형을 타이핑한다.

리스트를 넣으면 ndarray 형태가 나오는구나.

 

np.eye는 중복된 단어가 생길 경우를 고려하지 못함

 

실습...

 

 

문서의 표현

 

TF-IDF

BOW(Bag of Words)

TDM

 

 

알고리즘 코드

1. 어떤 것을수행해야하는지 말로 풀어서 표현 - 수도코드

조건/반복 - 제어문 잘 사용

제어문 한글로 잘 표현하기

 

ex) 문서를 하나씩 돌면서, 데이터프레임에서는 컬럼을 돌면서 sum하고.. 이런식으로

컴퓨터가 이해할 수 있게 표현

 

2. 파이썬이 할 수 있는 것/없는 것을 명확히 알고 있기

 

 

'새싹일지' 카테고리의 다른 글

0819 새싹일지  (0) 2024.08.19
0731 새싹일지  (0) 2024.07.31
SQL, 크롤링, 머신러닝, 딥러닝  (5) 2024.07.25
0723 새싹일지_오전  (2) 2024.07.23
0722 새싹데이  (9) 2024.07.23