Regular Expression
데이터 정제에 필요한 기술 중에 하나가 정규식(정규표현식)이다. 이전 게시물에 보았던 전각문자를 반각문자로 바꾸는 데에도 주로 사용되는 기술이다. Regular Expression 을 사용하는 방법은 크게 두가지가 있다.
-
Text Editor (VSCode, Sublime Text...)
-
Python 등을 활용한 모듈 사용
이제 정규식의 첫 걸음을 시작해보자.
[ ]
대괄호이다. 정규식에서 가장 많이 쓰이는 기호 중에 하나이다.
대괄호 안에 있는 문자(숫자 등)를 매칭해준다. 만약 정규식이 [ab279] 라고 설정 되어있을 때 'a', 'b', '2', '7', '9' 중에 하나라도 들어가있는 문장은 매치에 성공한다.
대괄호 안에 문자 및 숫자들만이 아니라 기호들이 다양하게 들어간다.
^ ... $
^ 기호는 문자의 시작을 의미하고 $ 기호는 문장의 끝을 의미한다. 정규식의 앞과 뒤에 적어준다면 그 문장 내의 정규식에 해당하는 문장을 매치해준다.
-
- (대쉬) 의 기능은 이어지는 느낌이라고 보면 된다. [1-5a-d] 를 예시로 든다면 1부터 5까지와 a 부터 d 까지를 나타낸다고 볼 수 있다. [1-5a-d] 와 [12345abcd] 는 같은 기능을 한다.
^
^ 기호는 not 의 의미를 나타낸다. 이 기호를 쓴다면 해당이 안되는 나머지들이 대상이 된다고 생각하면 된다. [^1-5a-d] 라면 1부터 5의 숫자와 a 부터 d의 알파벳을 제외한 단어들이 매치된다.
?
? (물음표) 기호는 "x" 기호가 0번 혹은 1번 나타났을 때 매치되는 기호이다.
+
+ (플러스) 기호는 "x" 기호가 1번 이상 나타났을 때 매치되는 기호이다.
*
* 기호는 0 번 혹은 1번 이상 나타났을 때 매치되는 기호이다.
.
. 기호는 아무거나 다 매치된다. 띄어쓰기(공백) 또한 매치된다.
{ }
대괄호를 알아보았다면 다음에 알아볼 것은 중괄호이다. 중괄호는 반복을 의미한다.
- {5} : 5번 반복
- {5,} : 5번 이상 반복
- {5, 10} : 5 ~ 10번 반복
# 기타 문자 클래스
정규 표현식 | 설명 |
\d | 숫자를 매치한다. [0-9] 와 같음 |
\D | 숫자가 아닌 것과 매치한다. [^0-9] 와 같음 |
\s | 공백문자. space 나 tab 같은 공백과 매치한다. \t, \n, \r, \f, \v 와 같음. |
\S | \s에 해당 안되는 것과 매치된다. |
\w | 문자 + 숫자와 매치된다. [a-zA-Z0-9_]와 같다. |
\W | \w 와 반대된다. |
'데이터 분석 > 자연어처리' 카테고리의 다른 글
4. 자연어 처리 - Word Embedding(WordNet) (0) | 2021.02.03 |
---|---|
3. 자연어 처리 - 텍스트 유사도(n-gram, 코사인 유사도) (1) | 2021.01.18 |
2. 자연어 처리 - Subword, BPE 알고리즘(OoV, UNK) (0) | 2021.01.17 |
1. 자연어 처리(NLP, NLU, NLG) - 수집, 정제, tokenization (0) | 2021.01.14 |