본문 바로가기

학부/AI 관련 공부

Natural Language Processing, Cleaning 이란? (2)

728x90
반응형

https://tjddms9376.tistory.com/6

 

Natural Language Processing, Tokenization이란? (1)

새로운 데이터사이언스 학회에 들어가면서 NaturalLanguage Processing (NLP)를 본격적으로 공부를 하기 시작했다. 지난 학기, 자연어처리 수업을 들으면서 해당 분야에 관심을 가진 이래로 처음 제대로

tjddms9376.tistory.com

앞선 시간에 Text pre-processing에서 Tokenization에 대해 알아보았다.

오늘은 텍스트 전처리의 3가지 단계 중, tokenization을 제외한 다른 단계인 Cleaning (정제)에 대해 알아보자.

 

Cleaning (정제) 란?

 

  • 정제(cleaning) : 갖고 있는 corpus로부터 노이즈 데이터를 제거한다.
노이즈 = 실제 아무 의미가 없는 단어 + 분석 목적에 맞지 않는 단어
분석 목적에 맞지 않는 단어 = (등장 빈도가 적은 단어 + 길이가 짧은 단어)

텍스트 데이터를 정제하는 방법은 상황에 따라 여러가지가 있다.

그 중에서 정규 표현식을 이용한 방법과 불용어 제거에 대해 이야기를 할텐데, 이야기를 하기 전에 간단하게 알아보고 자세하게 넘어가보자.

 

불필요한 단어를 제거

  • 등장 빈도가 적은 단어
  • 영어에서는 길이가 짧은 단어를 삭제하는 것도 유의미한 전처리 결과를 낳기도 한다. 
    ex. 알파벳 2개로만 이루어진 글자들을 삭제 : it, he, us 등

정규 표현식 (Regular Expression)

Corpus 내에 계속해서 등장하는 글자들을 규칙에 기반하여 한 번에 제거하는 방식 (ex. HTML 태그를 이용한 불필요한 데이터 제거)

 

 

정규 표현식을 이용한 정제

정규 표현식은 개인이 정의할 수 있다. 필요에 따라 정의한 정규 표현식을 이용해 텍스트를 전처리하는데, 이는 정규 표현식에 해당되는 텍스트들을 삭제하는 방식이라고 이해하면 된다.

 

https://docs.python.org/ko/3/library/re.html

 

re — Regular expression operations

Source code: Lib/re/ This module provides regular expression matching operations similar to those found in Perl. Both patterns and strings to be searched can be Unicode strings ( str) as well as 8-...

docs.python.org

위의 링크는 Python에서 제공하는 정규표현식 모듈인 're'에 대한 설명이다.

정규식 문법과 사용 방법에 대해 자세히 나와 있으니 참고하면 좋을 것 같다.

빨간 박스를 쳐놓은 re 모듈의 함수들이 가장 많이 사용하는 함수들이다.

Compile로 내가 정의하고 싶은 정규 표현식을 python에게 전달하고, split으로 띄어쓰기 기준으로 문자열을 분리하고, sub로 정규 표현식과 일치하는 부분을 원하는 문자열로 대체하는 역할을 한다.

 

코드 예시는 다음과 같다.

 

불용어를 이용한 정제

 

불용어 (Stopword)를 이용해 정제를 하는 방법도 있다.

불용어는 자주 등장하지만 분석을 하는 것에 있어서 큰 도움이 되지 않는 단어들을 의미한다.

유의미한 단어 토큰만을 선별하기 위해 큰 의미가 없는 단어 토큰들을 제거하는 작업을 수행함으로써 텍스트 전처리를 하는 과정이라고 이해하면 된다.

 

NLTK에선 불용어를 직접 정의하여 100개정도의 불용어를 제거하는 패키지를 지원하고 있다.

한국어에서 불용어를 제거하는 방법으로는, 간단하게 토큰화 이후에 조사, 접속사 등을 제거하는 방법이 있다.

 

https://www.ranks.nl/stopwords/korean 

 

Korean Stopwords

 

www.ranks.nl

위의 링크는 한국어 불용어 리스트를 보여준다. 이는 절대적인 기준이 아님을 명심해야 한다.

코드 예시는 다음과 같다.

 

 

전반적인 출처와 내용들은 딥러닝을 이용한 자연어 처리 교재를 이용했다.

https://wikidocs.net/21693

 

02-02 정제(Cleaning) and 정규화(Normalization)

코퍼스에서 용도에 맞게 토큰을 분류하는 작업을 토큰화(tokenization)라고 하며, 토큰화 작업 전, 후에는 텍스트 데이터를 용도에 맞게 정제(cleaning) 및 정규화(…

wikidocs.net

 

728x90
반응형