샘플을 머신러닝 알고리즘에 사용하려면 수치로 표현해야 한다.
입력인코딩 : 샘플과 타깃을 벡터나 텐서의 수치로 표현
🦊원-핫 표현 ( 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는 벡터 표현에서 흔한 토큰의 점수를 낮추고 드문 토큰의 점수를 높인다.
'AI > NLP' 카테고리의 다른 글
BERT로 네이버 영화 리뷰데이터 분류하기 실습 (2) | 2022.02.04 |
---|---|
Some weights of the model checkpoint at bert-base-multilingual-cased were not used when initializing (0) | 2022.02.04 |
NLP / 지도학습 (0) | 2022.01.24 |
자연어 처리 시작 (0) | 2022.01.24 |
댓글