파이썬 정규 표현식 모듈 re 지원
: 특정 규칙이 있는 텍스트 데이터 빠르게 정제
*실습
1. re.complie()에 정규 표현식 컴파일
2. re.search()를 통해서 해당 정규 표현식이 입력 텍스트와 매치되는지 확인
3. 매치 > Match Object 리턴
정규 표현식 모듈 함수 예제
search(): 정규 표현식 전체에 대해서 문자열이 매치하는지 확인
match(): 문자열의 첫 부분부터 정규 표현식과 매치하는지 확인
: 입력된 정규 표현식을 기준으로 문자열들을 분리하여 리스트로 리턴
# 공백 기준 분리
text = "사과 딸기 수박 메론 바나나"
re.split(" ", text)
['사과', '딸기', '수박', '메론', '바나나']
: 정규 표현식과 매치되는 모든 문자열들을 리스트로 리턴
text = """이름 : 김철수
전화번호 : 010 - 1234 - 1234
나이 : 30
성별 : 남"""
re.findall("\d+", text)
['010', '1234', '1234', '30']
: 정규 표현식 패턴과 일치하는 문자열을 찾아 다른 문자열로 대체
text = "Regular expression : A regular expression, regex or regexp[1] (sometimes called a rational expression)[2][3] is, in theoretical computer science and formal language theory, a sequence of characters that define a search pattern."
preprocessed_text = re.sub('[^a-zA-Z]', ' ', text)
print(preprocessed_text)
'Regular expression A regular expression regex or regexp sometimes called a rational expression is in theoretical computer science and formal language theory a sequence of characters that define a search pattern '
정규 표현식을 이용한 토큰화
from nltk.tokenize import RegexpTokenizer
text = "Don't be fooled by the dark sounding name, Mr. Jone's Orphanage is as cheery as cheery goes for a pastry shop"
tokenizer1 = RegexpTokenizer("[\w]+")
tokenizer2 = RegexpTokenizer("\s+", gaps=True)
print(tokenizer1.tokenize(text))
print(tokenizer2.tokenize(text))
['Don', 't', 'be', 'fooled', 'by', 'the', 'dark', 'sounding', 'name', 'Mr', 'Jone', 's', 'Orphanage', 'is', 'as', 'cheery', 'as', 'cheery', 'goes', 'for', 'a', 'pastry', 'shop']
["Don't", 'be', 'fooled', 'by', 'the', 'dark', 'sounding', 'name,', 'Mr.', "Jone's", 'Orphanage', 'is', 'as', 'cheery', 'as', 'cheery', 'goes', 'for', 'a', 'pastry', 'shop']