Rabet 2024. 11. 4. 17:00

 

- TF- IDF ( Term Frequency-Inverse Document Frequency )

중요한 단어만 먼저 뽑아내는 기법이다.

TF: 현재 문서 중에 단어의 수

IDF : 모든 문서 중 단어가 포함된 문서의 수 (모든 문서에 나오면 특징성이 없기 때문에)

 

- 단어 표현 ( Word Representation, Word  Embedding, Word  Vector )

자연어 처리를 위해 텍스트를 벡터로 표현한다. 하나의 벡터는 단어를 표현하는 특징이 된다. (인코딩 과정)

 

  • One-Hot Encoding은 자연어 단어 표현에는 부적합하다.
단점 3가지
1. 단어의 수가 많기에 고차원 저밀도 벡터를 구성한다.
2. 의미나 특성을 표현할 수 없다.
3. 신조어가 생기면 다시 구조를 다시 바꿔야한다는 단점이 있다.

 

- 유사도

유사도는 동일한 단어를 검색하는데 사용된다.

1. 자카드 유사도

  • 두 문장을 각각 단어의 집합으로 만든 뒤 두 집합을 통해 유사도 측정하는 방법이다.
  • 즉, 동일한 단어가 몇개인지 특정한다.
  • 0~1사이의 값을 가진다.
import numpy as np
from sklearn.metrics import accuracy_score

print(accuracy_score(np.array([1,3,2]),np.array([1,4,5])))
print(accuracy_score(np.array([1,3,2]),np.array([4,1,5])))
print(accuracy_score(np.array([1,1,0,0]),np.array([1,1,0,2])))
print(accuracy_score(np.array([1,0,1,0]),np.array([1,1,0,2])))

 

2. 코사인 유사도

  • 두 개의 벡터값에서 코사인 각도를 구하는 방법이다.
  • -1, 1사이의 값을 가진다.
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.metrics.pairwise import cosine_similarity

sentence=( "오늘은 KT에서 강의하는 날입니다.", "언어지능을 강의할 예정입니다.")
vector = TfidfVectorizer(max_features=100)
vector_result = vector.fit_transform(sentence)
print(cosine_similarity(vector_result[0], vector_result[0])) #[[1.]]
print(cosine_similarity(vector_result[0], vector_result[1])) #[[0.]]

 

 

- 비지도 학습

아무것도 모르면서.. 배우려고 하는 머신러닝은 갓 태어난 애기와 같다

머신러닝은 data만을 사용하고 Brute Force를 진행한다. 하지만 AI는 Rule이 있다.

  • 지도학습, 교사학습 (Supervised Learning) : 데이터, 레이블이 있음
  • 비지도 학습 (Unsupervised Learning) : 데이터는 있음, 레이블이 없음 - 데이터를 통해 코사인 유사도를 재고 레이블을 자기가 만듬
    • Classification 분류 VS Clustering 자연적으로 비슷해 보이는 것들끼리 분류
  • 강화 학습 (Reinforcement Learning) : 실수와 보상을 통해 학습을 하여 목표를 찾아가는 알고리즘

 

- 데이터 표현

  • Discrete 랭크 VS Continuous 무한한 값

1. Data matrix : p사이즈의 특징을 가지고 있는 n명의 사람을 나타냄

2. dissimilarity matrix : 오브젝트에서 오브젝트와의 거리를 나타냄

- Euclidean Distance : 대각선으로 최단 거리를 나타냄

- Manhattan Distance : 도로를 고려하는 것처럼 직선으로 거리를 나타냄

 

Minkowski Distance 

p가 1이면 맨하튼, 2면 유클리드

 

Cosine Measure 

0이면 거리가 비슷, 2이면 거리가 다름

1- cos로 유사도 판단함

내적 : 각각의 차이를 구하고 이들을 더하는 것

위에 수식을 내적이라고 표현함

 

 

- Clustering 

1. K-means : 100개를 2개로 분류하고 싶을때 두개를 리더로 잡고 가까운 것들을 모여서 평균점에 가까운 표현을 다시 리더로 표현 > 첫번째 시작할때 느림, 4,5개면 안된다.. 

2. 앙상블 : k-means을 취합하는 과정 combination

 

- Word Embeding

0곱하기 각각의 다른 값을 구하여 상관관계를 구하는 것

Word2Vec : 텍스트의 단어들 사이의 의미적 유사성을 학습하여, 단어를 고차원 공간에서 벡터로 표현

Input 토끼, Output 야생동물

Input 토끼, Output 애완동물