「텍스트 마이닝」
: 텍스트에 숨어 있는 패턴을 이용해 어떤 사건을 예측하는 것
'자연어 처ㅔ리 기법'을 이용해 텍스트를 정형화된 데이터로 변환하고, 머신러닝 기법을 적용해 우리가 관심 있는 어떤 사건을 예측하고자 하는 방법론
* 정형화된 데이터: 일정한 길이의 벡터 (항상 같은 길이로 변환된다는 뜻)
* (문서) 임베딩: 주어진 텍스트를 일정한 길이의 벡터로 변환하는 것 (ex. '텍스트 마이닝의 정의' -> [3,7,4,2,5])
* 희소(sparse): 벡터의 크기가 큰 경우 벡터를 구성하는 많은 값들이 0이고 극히 일부만 0이 아닌 값을 가짐
* 밀집(dense): 벡터의 크기가 작은 경우 벡터가 대부분 0인 값들로 이루어짐
* 카운트 기반의 문서 표현(BOW): 문서를 사용된 단어들의 빈도로 표현하는 것
- 문맥에 대한 정보는 사라지고, 단어에 대한 통계만이 남게됨
- 각 단어별로 개수를 세어서 이를 벡터로 만듬
- But 텍스트 마이닝의 원래 목적인, 텍스트의 내용을 기반으로 어떤 사건을 예측하는 것은 훌륭한 결과 보일 수 o
지금은 텍스트 분류 등의 작업에 딥러닝 기반의 BERT를 쓰는 것이 일반화됨
* 시퀀스 기반의 문서 표현: 각 단어를 먼저 벡터로 변환하고, 벡터의 연속된 나열 혹은 시퀀스로 문서를 표현
- 사람이 글을 읽고 이해하는 것과 유사한 방법으로 텍스트의 문맥을 이해하고자 하는 방식
- 원핫 인코딩 : 단어를 일정 규칙에 따라 정렬하고 단어의 수 만큼의 벡터를 만든 후 단어 자신의 위치만 1로 표시
→ 벡터가 지나치게 커짐 → 딥러닝 기법에서 (워드)임베딩(긴 벡터를 길이가 보통 200 정도인 짧은 벡터로 변환)
→ 길이 제각각 문제(머신러닝, 딥러닝은 가변 길이 입력 허용X) → 앞뒤 단어 자름 or 공백 혹은 의미x 값으로 메꿈
→ 이렇게 해서 '문서를 일정한 길이의 벡터로 변환'
* 문서: 하나의 일관된 목적 혹은 주제를 갖고 쓰여진 글
* 문장: 완결된 내용을 나타내는 최소 단위로, 문서를 구성하는 단위
* 텍스트: 분석의 대상이 되는 문자열
* 말뭉치: 자연어 처리나 텍스트 마이닝을 위해 유사한 문서들을 모아 놓은 집합
* 자연어 처리: '컴퓨처를 이용해 사람의 자연어를 분석하고 처리하는 기술'
* 텍스트 전처리 위한 기법: 토큰화, 어간 추출, 표제어 추출과 같은 정규화, 품사 태깅 → 라이브러리 NLTK, KoNLPy이용
* 행렬 연산 → 관련 넘파이(Numpy), csv형태 텍스트 데이터 처리 → 판다스 이용
*matplotlib, seaborn 이용
* 머신러닝: 인공지능의 한 분야로 사람의 직접적인 지시 없이 컴퓨터가 학습을 통해서 문제를 해결하게 하는 알고리즘이나 통계적 모형에 관한 연구 → 공통적인 알고리즘을 데이터에 적용해 학습함으로써 주어진 데이터에 적합한 문제해결 방안을 생성하는 방식
→ 지도학습(회귀, 분류) / 비지도학습(클러스터링, 차원축소)
* 머신러닝 구현하는데 많이 쓰이는 라이브러리 사이킷런 이용!
* 딥러닝: 머신러닝의 한 분류에 속하는 인공신경망에서 은닉층을 깊게 쌓은 신경망 구조를 활용해 학습하는 알고리즘
→ 자연어 처리, 이미지 인식, 음성 처리 등에 이용
→ RNN, LSTM, CNN, BERT와 GPT(전이학습 = 트랜스 러닝 → 이미 학습된 모형 이용) -- 자연어 처리
* 딥러닝에서의 라이브러리 케라스(Keras), 파이토치(PyTorch) 이용!
* 문서 분류: 주어진 문서에 대해 미리 정의된 클래스로 분류하는 작업
ex. 메일의 내용을 분석해 스팸 메일의 여부 결정
* 문서 생성: 사람이 쓴 것과 유사한 문장을 만들어내는 작업
* 입력 데이터는 없지만 시드(출발점) 제시 가능
* 문서 요약: 중요하고 흥미 있는 내용을 추출해 요약문을 생성하는 작업
* 딥러닝 기법 중 sequence-to-sequence 문제 → 단어의 시퀀스를 입력받아 길이는 짧지만 다시 단어의 시퀀스를 출력
* 질의응답: 주어진 문장을 읽고, 주어진 문제에 대해 올바른 답을 생성하는 작업
* 딥러닝 기법 중 sequence-to-sequence 문제
ex. 챗봇
* 한 언어로 작성된 문서를 다른 언어로 번역
* 자연어 이해를 전제로 한다.
* sequence-to-sequence 모형이 처음 도입한 분야
* 토픽 모델링: 여러 문서에서 공통으로 등장하는 토픽(주제)을 추출하는 방법 → 잠재된 내용 파악에 활용
* 영문 자연어 처리 → NLTK, 한글 자연어 처리 → KoNLPy
* 텍스트 마이닝(머신러닝) → 사이킷런
* 딥러닝 → Tensorflow(RNN, CNN 구현 위해), PyTorch(BERT 구현 위해)
[NLP 스터디] 10장_RNN - 딥러닝을 이용한 문서 분류 (0) | 2022.10.16 |
---|---|
[NLP 스터디] 9장_인공신경망과 딥러닝의 이해 (0) | 2022.10.16 |
[NLP 스터디] 7회차. 토픽 모델링 (0) | 2022.10.16 |
[1회차] NLP 스터디_0913 (1) | 2022.09.21 |
[NLP 스터디] 02. 텍스트 전처리 (0) | 2022.09.13 |