[파이썬] string 자료형의 Punctuation 없애는 방법

2019. 5. 15. 18:53Programming Tutorial/Python

 

 

 

 

오랜만에 돌아왔습니다.

 

요즘 Udacity의 Data Scientist Nanodree 프로그램에 등록하여 공부하다가 막혀서 구글님에게 물어봤던 내용중 하나를

 

오늘 포스팅해볼까 합니다.

 

언어에 익숙하지 않은 제 입장에서 역시 구글은 메시아 같은 존재 더군요.

 

일단 각설하고 string 자료형의 Punctuation 없애는 방법을 왜 검색해봤냐부터 시작해야겠네요.

 

머신러닝 과목중 spam메일을 걸러내는 방법에 대한 코스의 퀴즈를 풀고 있었습니다.

 

아래와 같은 자료형을 주더니 preprocessing 작업중 하나로 Punctuation을 전부 없애는 작업이 있더군요.

documents = ['Hello, how are you!',
             'Win money, win from home.',
             'Call me now.',
             'Hello, Call hello you tomorrow?']

Punctuation 이란 따옴표,마침표 물음표 등등 이런류의 문장부호라고 생각하시면 되겠습니다.


스리슬쩍 구글님이 생각나더군요. 자판을 좀 두들겼습니다.

 

python punctuation remove ... 머 이런식으로 검색을 했지오.

 

역시 파이썬은 간단했습니다.

 

sans_punctuation_documents = []
import string

for i in lower_case_documents:
    # TODO
    sans_punctuation_documents.append(i.translate(str.maketrans('','',string.punctuation)))
print(sans_punctuation_documents)

* Punctuation 없애기 전에 대문자도 없애는 작업이 있어서 중간 변수이름이 바껴있는 겁니다. 참조해주심 됩니다.

 

위보다 더 간단하게 하는 방법도 있을지 모르겠지만 제 선에선 저게 최선이더군요.

 

1) maketrans methode로 string.puctuation 각각의 문자와 같을시 아무것도 mapping하지 않게 함.

2) translate methode로 i 변수의 모든 str을  "1)"을 기준으로 변환함