티스토리 뷰
본 포스팅은 『텐서플로2와 머신러닝으로 시작하는 자연어처리』를 참고하여 만들어졌습니다.
https://wikibook.co.kr/nlp-tf2/
텍스트 분류(Text Classification)는 자연어 처리 문제 중 가장 대표적이고 많이 접하는 문제다. 자연어 처리 기술을 활용해 특정 텍스트를 사람들이 정한 몇 가지 범주(Class)중 어느 범주에 속하는지 분류하는 문제다. 분류해야 할 범주의 수에 따라 문제를 구분하기도 하는데 보통 2가지 범주에 대해 구분하는 문제를 이진 분류(Binary classfication) 무제라 한다. 그리고 3개 이상의 범주에 대해 분류하는 문제를 통틀어 다중 범주 분류(Multi class classfication) 문제라 한다. 텍스트 분류 문제는 우리 주변에서 쉽게 접할 수 있다. 다음 예시들을 보며 텍스트 분류에 대해 좀 더 알아보자.
1. 텍스트 분류 예시
(1) 스팸 분류
누구든 메일함에 들어갈 때마다 넘치는 스팸메일 때문에 짜증났던 기억이 분명히 있을 것이다. 계속해서 들어오는 스팸 메일 때문에 정작 필요한 메일은 확인하기 어려워진다. 따라서 자동으로 스팸 메일을 걸러서 사용자에게 일반 메일만 확인할 수 있게 보여주는 것이 중요할 것이다. 이처럼 일반 메일과 스팸 메일을 분류하는 문제가 스팸 분류 문제다. 여기서 분류해야 할 범주(class)는 스팸 메일과 일반 메일로 2가지다. 이러한 스팸 분류 기술들은 이미 많은 이메일 업체에서 제공하고 있다.
(2) 감정 분류
감정 분류란 주어진 글에 대해 이 글이 그정적인지 부정적인지 판단하는 문제다. 이 경우 범주는 긍정 혹은 부정이 된다. 경우에 따라 범주는 긍정 혹은 부정으로만 나뉘는 것이 아니라 중립의 범주가 추가될 수도 있고, 긍정 혹은 부정의 경우에도 정도에 따라 범주를 세분화할 수 있다. 문제에서 분류하려는 의도에 따라 범주가 정해지는 것이다. 가장 대표적인 감정 분류 문제는 영화 리뷰에 대해 각 리뷰가 긍정적인지 부정적인지 판단하는 문제이다.
(3) 뉴스 기사 분류
인터넷에서 수많은 뉴스가 존재한다. 뉴스가 많다는 것은 장점이지만 사용자 입장에서는 어떤 뉴스를 선택해서 봐야 할지도 어려울 것이다. 따라서 뉴스 업체는 사용자가 원하는 뉴스를 선택해서 볼 수 있게 범주를 잘 구분지어 분류해 둬야 할 것이다. 스포츠, 경제, 사회, 연예 등 다양한 주제의 기사를 각각 주제에 맞게 분류해서 준비해둬야한다. 자연어 처리 기술을 사용한다면 뉴스 기사를 더욱 효율적으로 분류할 수 있다.
위의 예시뿐 아니라 텍스트 분류에는 다양한 문제가 있다. 분류하는 단위를 글 전체로 하지 않고 각 단어를 한 단위로 분류하는 문제도 있다. 예를 들면, 품사 분류(POS tagging) 문제는 ㄱ각 단어를 기준으로 어떤 품사를 가지는지 분류해야 하는 문제다.
2. 지도 학습을 통한 텍스트 분류
지도 학습은 글(데이터)에 대해 각각 속한 범주에 대한 값(라벨)이 이미 주어져 있다. 따라서 주어진 범주로 글들을 모두 학습한 후 학습한 결과를 이용해 새로운 글의 범주를 예측하는 방법이다. 지도학습을 통한 문장 분류 모델에는 다양한 종류가 있다. 대표적인 지도 학습의 예는 다음과 같다.
- 나이브 베이즈 분류(Naive Bayes Classifier)
- 서포트 벡터 머신(Support Vector Machine)
- 신경망(Neural Network)
- 선형 분류(Linear Classifier)
- 로지스틱 분류(Logistic Classifier)
- 랜덤 포레스트(Random Forest)
이 밖에도 수많은 모델이 있다. 해당 문제에 적합한 모델은 정해져 있는 것이 아니므로 항상 다양한 모델을 사용해보는 습관을 길러야 한다.
3. 비지도 학습을 통한 텍스트 분류
비지도 학습을 통한 문장 분류는 무엇일까? 지도 학습에서는 각 데이터가 어떤 범주의 데이터인지에 대한 값(라벨)을 이미 가지고 있었다. 그래서 그 값을 토대로 모델을 학습시켰지만 비지도 학습에서는 데이터만 존재하고 각 데이터는 범주로 미리 나눠져 있지 않다. 따라서 특성을 찾아내서 적당한 범주를 만들어 각 데이터를 나누면 된다.
대표적인 비지도 학습의 예인 k-평균 군집화(k-means clustering)를 예로 들어보자. 각 문장 데이터는 다음과 같이 벡터화한 뒤 좌표축에 표현한다. 이후 k-평균 군집화 모델을 사용해 데이터를 몇 개의 군집으로 나눈다.
비지도 학습을 통한 분류는 어떤 특정한 분류가 있는 것이 아니라 데이터의 특성에 따라 비슷한 데이터끼리 묶어주는 개념이다. 비지도 학습을 통한 텍스트 분류틑 텍스트 군집화라고도 불린다. 비지도 학습 모델은 다음과 같다.
- k-평균 군집화(k-means clustering)
- 계층적 군집화(Hoerarchical clustering)
지도 학습과 비지도 하습 중 어떤 방법을 사용할지 결정하는데 기여하는 가장 큰 기준은 데이터에 정답 라벨이 있느냐 없느냐이다. 정답 라벨이 있는 경우 지도 학습 방법으로 문제를 해결하면 되고, 정답 라벨이 없다면 비지도 학습을 사용해서 문제를 해결하면 된다. 그리고 일반적인 분류의 경우에는 지도 학습을 사용하지만 정확한 범주가 없고 단순히 군집화만 할 경우에는 비지도 학습을 통해 데이터를 군집화 하면 된다.
'인공지능, 자연어처리 > 텐서플로2와 머신러닝으로 시작하는 자연어처리' 카테고리의 다른 글
3장 자연어 처리 개요(4) : 자연어 생성 (0) | 2021.01.06 |
---|---|
3장 자연어 처리 개요(3) : 텍스트 유사도 (0) | 2021.01.06 |
3장 자연어 처리 개요(1) : 단어표현 (0) | 2021.01.05 |
2장 자연어 처리 개발 준비(4) : 그 밖의 라이브러리 (0) | 2021.01.03 |
2장 자연어 처리 개발 준비(3) : 자연어 토크나이징 도구 (0) | 2021.01.03 |
- Total
- Today
- Yesterday
- Mikolov
- 융
- 코딩하는 신학생
- 자연어처리
- NLP
- web
- 코딩테스트
- 로버트존슨
- CBOW
- text classification
- 심리학
- 그림자
- AI
- 당신의 그림자가 울고 있다.
- Python
- 인공지능
- 알고스팟
- lstm
- 분석심리학
- word vector
- word embedding
- 단어표현
- word2vec
- Polls
- 텍스트분류
- Tutorial
- WebProgramming
- 젠심
- django
- Skip-gram
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |