Regular Expressions 이란?
텍스트에서 패턴을 검색하기 위한 표준화된 '언어' 이다.
예시
- 텍스트 문서에서 모든 이메일 주소 찾기
- 텍스트 문서에서 모든 가격 찾기
응용 프로그램
- 텍스트 문서에서 정보를 찾을때 문자열이 매핑된 키워드 찾기 보다 강력하다.
- 텍스트에서 구조화된 정보를 추출한다.
기본 검색
- 특정 문자, 숫자 또는 문자열 찾기
- 하나의 범위내에서 문자 또는 숫자 찾기
- 특정 문자, 숫자를 제외한 문자 또는 숫자 찾기
Anchors (고정자) 는 문자열의 특정 위치 일치하는 정규식을 연결한다.
- 행의 시작 부분에만 패턴을 일치시킬때 e.g. /^The/
- 줄의 끝에만 패턴을 일치 시킬때, 행의 마지막 마침표와 일치 e.g. /^\./
- 일치 단어 경계 e.g. /\bthe\b/ 'the' 는 일치해야하지만 'other' 는 일치 하지 않음
더 정교한 연산자
대체 - s/regexp1/pattern
- s/colour/color - colour 를 color 로 대체한다.
캡쳐 그룹
- 문자열에서 패턴을 저장하기 위해 괄호를 사용한다.
- e.g. (.*) - 임의의 문자열과 일치한다.
- e.g. /the (.*)er they were, the \1er they will be/ - 'the bigger they were, the bigger they will be' 와 일치한다.
- e.g. /the (.*) they (.*), the \1er we \2/ - 'the faster they ran, the faster we ran' 와 일치한다.
정규식을 사용하여 채팅봇 만들기
- 챗봇의 초기 시도는 정규 표현에 크게 의존했다.
- e.g. s/.* I'M (depressed|sad) .*/I am sorry to hear you are \1/
- e.g. s/.* I am (depressed|sad) .*/Why do you think you are \1/
- e.g. s/.* all .*/In the way/
- e.g. s/.* always .*/Can you think of a specific example/
'AI Master Degree > Natural Language Processing' 카테고리의 다른 글
Model Evaluation란? 모델 평가란? (1) | 2022.10.08 |
---|---|
N-Gram language models 이란? 엔 그램 언어 모델들이란? (2) | 2022.10.07 |
Text normalization 이란? 텍스트 정규화란? (0) | 2022.10.06 |
Words 에 대해서? (0) | 2022.10.06 |
NLP 란? Natural Language Processing 자연어 처리란? (1) | 2022.10.05 |