본문 바로가기
AI/NLP

샘플과 타깃의 인코딩

by 동기 2022. 2. 9.
반응형

샘플을 머신러닝 알고리즘에 사용하려면 수치로 표현해야 한다.

입력인코딩 : 샘플과 타깃을 벡터나 텐서의 수치로 표현

 

🦊원-핫 표현 ( one-hot representation )

0 벡터에서 시작해 문장이나 문서에 등장하는 단어에 상응하는 원소를 1로 설정한다.

Time flies like an arrow
Fruit flies like a banana

문장을 토큰으로 나누면 {time, fruit, flies, like, a, an, arrow, banana} 8개가 된다.

각 단어를 8차원 원-핫 벡터로 표현이 가능하다.

여기에서는 0과 1이 한 단어의 등장 여부를 나타낸다.

'like a banana'의 이진 인코딩은 [0,0,0,1,1,0,0,1] 이 된다.

time fruit flies like a an arrow banana
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1

 

🦊TF 표현 

구, 문장, 문서의 TF표현은 단순히 소속 단어의 원-핫 표현을 합해서 만든다.

'fruit flies like time flies a fruit'의 TF 표현은 다음과 같다.

[1,2,2,1,1,0,0,0]  각 원소는 해당 단어가 문장(말뭉치) 에 등장하는 횟수이다.

 

🦊TF-IDF 표현

특허 문서 묶음이 있다고 가정해 보자. 여기에는 'claim', 'system', 'method', 'procedure'같은 단어가 여러번 나올 것이다.

앞서 본 TF는 등장 횟수에 비례하여 단어에 가중치를 부여한다. 하지만 'claim'과 같은 흔한 던어에는 특허와 관련한 어떤 정보가 있지 않다.

반대로 'tetrafluoroethylene'같은 희귀한 단어는 자주 나오지 않지만 특허 문서의 특징을 잘 나타낸다. 이런 상황에는 역문서 빈도(IDF : Inverse-Document-Frequency)가 적합하다.

 

IDF는 벡터 표현에서 흔한 토큰의 점수를 낮추고 드문 토큰의 점수를 높인다.

반응형

댓글