딥러닝을 이용한 자연어 처리(1)
edwith에서 조경현 교수님의 nlp에 대한 강의가 있어 이를 수강하고 정리하여 포스팅해보려고 합니다.
https://www.edwith.org/deepnlp/joinLectures/17363
Text Classification
텍스트에서 분류는 input으로 자연어로 된 문장(sentence)나 문단(paragraph) 혹은 Document가 들어왔을 때, output으로 해당 텍스트가 어떤 카테고리에 속하는 지를 알려주는 것입니다. 카테고리가 몇개냐에 따라서 어떤 분류 모델인지를 나눌 수 있습니다.
- Sentiment analysis : 카테고리가 positive인지 negative인지 2개 binary한 classification이며 흔히 영화 등의 리뷰 데이터를 예시로 들 수 있습니다.
- Text classification: 카테고리가 여러 개(2개이상)인 경우에 어떤 카테고리에 속하는지
- Indent classification : 의도분류
How to represent sentence?
이미 pre-defined된 사전(vocabulary)이 있다고 생각했을 때를 가정해봅시다. 사실 자연어는 이미지에 비해서 굉장히 임의적인(arbitrary)한 성격을 가지고 있습니다. 이제 단어들의 유사성(거리)를 구하기 위해서 input sentence의 토큰인 x를 벡터화 시키려고 하는데 , One-hot encoding이 그 중 하나의 방법입니다. 길이가 단어장의 총 길이 (|V|)인 벡터에서 해당 토큰의 index에 해당되는 값만 1, 나머지 값들은 0으로 놓는 방법입니다.
x=[0,0,0,⋯,0,1,0,⋯,0,0]∈{0,1}∣V∣
실제로 토큰 사이의 거리가 모두 1이기 때문에 단어의 arbitrary한 성격을 반영하지만, 비슷하거나 상반되는 단어들의 거리또한 같기에 문제가 됩니다. 또 단어장이 커질수록 vector space가 커지게 되므로 실제 해당되지 않는 단어들도 sparse해 져서 연산에 있어 효율적이지 않습니다. 그렇다면 어떻게 해야 토큰에 의미를 반영하게 할 수 있을까요?
토큰에 대한 의미를 가지고 있는 벡터를 찾는 것이 table lookpup , 문장에 대한 의미를 가지는 vector를 찾을 수 있을까?
'machine learning' 카테고리의 다른 글
[3Blue1Brown] 신경망이란 무엇인가 (0) | 2021.12.18 |
---|---|
[CS224N] Introduction and Word Vectors (0) | 2019.07.19 |
딥러닝을 이용한 자연어 처리(3) (0) | 2019.07.19 |
딥러닝을 이용한 자연어처리(2) (0) | 2019.07.11 |
댓글
이 글 공유하기
다른 글
-
[3Blue1Brown] 신경망이란 무엇인가
[3Blue1Brown] 신경망이란 무엇인가
2021.12.18 -
[CS224N] Introduction and Word Vectors
[CS224N] Introduction and Word Vectors
2019.07.19 -
딥러닝을 이용한 자연어 처리(3)
딥러닝을 이용한 자연어 처리(3)
2019.07.19 -
딥러닝을 이용한 자연어처리(2)
딥러닝을 이용한 자연어처리(2)
2019.07.11