상세 컨텐츠

본문 제목

[NLP] 01. 텍스트 마이닝 기초

가짜 연구소_NLP 스터디

by Noong_yoon 2022. 9. 13. 12:58

본문

1.1 텍스트 마이닝의 정의

「텍스트 마이닝

텍스트에 숨어 있는 패턴을 이용해 어떤 사건을 예측하는 것

   '자연어 처ㅔ리 기법'을 이용해 텍스트를 정형화된 데이터로 변환하고, 머신러닝 기법을 적용해 우리가 관심 있는 어떤 사건을 예측하고자 하는 방법론

 

* 정형화된 데이터: 일정한 길이의 벡터 (항상 같은 길이로 변환된다는 뜻)

* (문서) 임베딩: 주어진 텍스트를 일정한 길이의 벡터로 변환하는 것 (ex. '텍스트 마이닝의 정의' -> [3,7,4,2,5])

 

* 희소(sparse):  벡터의 크기가 큰 경우 벡터를 구성하는 많은 값들이 0이고 극히 일부만 0이 아닌 값을 가짐

* 밀집(dense): 벡터의 크기가 작은 경우 벡터가 대부분 0인 값들로 이루어짐

 

1.2 텍스트 마이닝 패러다임의 변화

1.2.1 카운트 기반의 문서 표현

* 카운트 기반의 문서 표현(BOW): 문서를 사용된 단어들의 빈도로 표현하는 것 

     - 문맥에 대한 정보는 사라지고, 단어에 대한 통계만이 남게됨 

     - 각 단어별로 개수를 세어서 이를 벡터로 만듬

     - But 텍스트 마이닝의 원래 목적인, 텍스트의 내용을 기반으로 어떤 사건을 예측하는 것은 훌륭한 결과 보일 수 o

 

지금은 텍스트 분류 등의 작업에 딥러닝 기반의 BERT를 쓰는 것이 일반화됨

 

1.2.2 시퀀스 기반의 문서 표현

시퀀스 기반의 문서 표현: 각 단어를 먼저 벡터로 변환하고, 벡터의 연속된 나열 혹은 시퀀스로 문서를 표현

     - 사람이 글을 읽고 이해하는 것과 유사한 방법으로 텍스트의 문맥을 이해하고자 하는 방식

     - 원핫 인코딩 : 단어를 일정 규칙에 따라 정렬하고 단어의 수 만큼의 벡터를 만든 후 단어 자신의 위치만 1로 표시

          → 벡터가 지나치게 커짐 딥러닝 기법에서 (워드)임베딩(긴 벡터를 길이가 보통 200 정도인 짧은 벡터로 변환)

          길이 제각각 문제(머신러닝, 딥러닝은 가변 길이 입력 허용X) 앞뒤 단어 자름 or 공백 혹은 의미x 값으로 메꿈

          이렇게 해서 '문서를 일정한 길이의 벡터로 변환'

 

* 문서: 하나의 일관된 목적 혹은 주제를 갖고 쓰여진 글

* 문장: 완결된 내용을 나타내는 최소 단위로, 문서를 구성하는 단위

* 텍스트: 분석의 대상이 되는 문자열

* 말뭉치: 자연어 처리나 텍스트 마이닝을 위해 유사한 문서들을 모아 놓은 집합

 

1.3 텍스트 마이닝에 필요한 지식과 도구

1.3.1 자연어 처리 기법

* 자연어 처리: '컴퓨처를 이용해 사람의 자연어를 분석하고 처리하는 기술'

* 텍스트 전처리 위한 기법: 토큰화, 어간 추출, 표제어 추출과 같은 정규화, 품사 태깅    라이브러리 NLTK, KoNLPy이용

1.3.2 통계학과 선형대수

* 행렬 연산    관련 넘파이(Numpy), csv형태 텍스트 데이터 처리   판다스 이용

1.3.3 시각화 기법

*matplotlib, seaborn 이용

1.3.4 머신러닝 

* 머신러닝: 인공지능의 한 분야로 사람의 직접적인 지시 없이 컴퓨터가 학습을 통해서 문제를 해결하게 하는 알고리즘이나 통계적 모형에 관한 연구   공통적인 알고리즘을 데이터에 적용해 학습함으로써 주어진 데이터에 적합한 문제해결 방안을 생성하는 방식

         지도학습(회귀, 분류) / 비지도학습(클러스터링, 차원축소)

 * 머신러닝 구현하는데 많이 쓰이는 라이브러리 사이킷런 이용!

1.3.5 딥러닝

* 딥러닝: 머신러닝의 한 분류에 속하는 인공신경망에서 은닉층을 깊게 쌓은 신경망 구조를 활용해 학습하는 알고리즘

       자연어 처리, 이미지 인식, 음성 처리 등에 이용

      RNN, LSTM, CNN, BERT와 GPT(전이학습 = 트랜스 러닝   이미 학습된 모형 이용) -- 자연어 처리

* 딥러닝에서의 라이브러리 케라스(Keras), 파이토치(PyTorch) 이용!

 

1.4 텍스트 마이닝의 주요 적용분야

1.4.1 문서 분류

* 문서 분류: 주어진 문서에 대해 미리 정의된 클래스로 분류하는 작업

ex. 메일의 내용을 분석해 스팸 메일의 여부 결정

1.4.2 문서 생성

* 문서 생성: 사람이 쓴 것과 유사한 문장을 만들어내는 작업

* 입력 데이터는 없지만 시드(출발점) 제시 가능

1.4.3 문서 요약

* 문서 요약: 중요하고 흥미 있는 내용을 추출해 요약문을 생성하는 작업

* 딥러닝 기법 중 sequence-to-sequence 문제   단어의 시퀀스를 입력받아 길이는 짧지만 다시 단어의 시퀀스를 출력

1.4.4 질의응답

* 질의응답: 주어진 문장을 읽고, 주어진 문제에 대해 올바른 답을 생성하는 작업

* 딥러닝 기법 중 sequence-to-sequence 문제 

ex. 챗봇

1.4.5 기계번역

* 한 언어로 작성된 문서를 다른 언어로 번역

* 자연어 이해를 전제로 한다.

* sequence-to-sequence 모형이 처음 도입한 분야

1.4.6 토픽 모델링

* 토픽 모델링: 여러 문서에서 공통으로 등장하는 토픽(주제)을 추출하는 방법   잠재된 내용 파악에 활용

 

1.5 이 책의 실습 환경과 사용 소프트웨어

* 영문 자연어 처리  NLTK, 한글 자연어 처리   KoNLPy

* 텍스트 마이닝(머신러닝)   사이킷런

* 딥러닝   Tensorflow(RNN, CNN 구현 위해), PyTorch(BERT 구현 위해)

관련글 더보기