본문 바로가기
기계학습/자연어 처리 머신러닝

텍스트 전처리 - 딥 러닝을 이용한 자연어처리 입문

by tryotto 2019. 12. 27.

프로젝트 목록 : 문서 유사도를 이용한 자연어처리 기법



# 자연어 처리를 위한 준비단계 : 텍스트 전처리


- 종류 1 : 준비단계


  1. 토큰화 : https://wikidocs.net/21698

      - 단어/문장의 토큰화 : 각 패키지별로 다른 방식 적용함 

      - 토큰화에서 고려할 사항 : 구두점/특수문자 단순제외 ㄴㄴ, 줄임말과 단어 내에 띄어쓰기(접어)는 분리

> 보완책 : 이진 분류기

      - 한국어/영어 토큰화의 어려움 차이점 : 한국어가 토큰화가 더 어려움

      - 품사 태깅 (팀플때 했던 것)


  2. 정제 : 

     1) 규칙에 기반한 표기가 다른 단어들의 통합 : 어간/표제어 추출을 이용한 방법

2) 대/소문자 통합

3) 불필요한 단어 제거 : 빈도가 작거나, 길이가 짧은 단어


  3. 정규화 : 좀 더 효율적인 방식으로 정제하기 위함. 노이즈 데이터의 규칙을 찾아서 한꺼번에 제거 해줌.

> 빈도수 기반 문제 해결 (BoW) 에 도움 됨.

1) 어간 추출 

2) 표제어 추출 : 보통은 이게 더 효율적. 그러나 상황에 따라 다른 방식을 택해야.




- 종류 2 : 실제 코딩에 추출


  1. 정규 표현식 : https://wikidocs.net/21703

> 정제/정규화/토큰화 과정 모두에 쓰이는 코딩 기법. 


  2. 인코딩

     1) 정수 인코딩 : 그냥, 인덱스를 하나씩 붙여준것

     2) 원핫 인코딩 

- 순서 : 먼저 정수 인코딩을 한 뒤 >> 원핫 인코딩을 취해준다

- 한계 :     

1> 단어의 갯수가 늘어날수록, 저장공간을 과도하게 사용해야 함.

2> 단어간의 유사도를 활용하지 못함 

*해결책 : 카운트 기반 벡터화 방법(LSA, HAL), 예측 기반 벡터화 방법(NNLM, RNNLM, Word2Vec, FastText), 두 가지 모두 (GloVe)



- 종류 3 : 단어/데이터의 분리