본문 바로가기
Programming/python

spaCy 사용하기 - Rule based Matching

by 유주원 2018. 4. 20.

spaCy에서는 자신이 직접 pattern을 등록시킬 수가 있다.


아래의 조건을 가지는 문자열 패턴을 찾는다고 가정해보자.


1. 소문자가 hello와 매칭되는 경우

2. 쉼표나 콜론 등의 구분자가 존재하는 경우

3. 소문자가 world와 매칭되는 경우 


아래는 위의 조건을 코드로 나타낸 것이다.



아래와 같이 두 개 이상의 패턴을 등록할 수도 있다.



wildcard token pattern도 등록할 수가 있다. 

가령 User name: {username} 이런 형태의 패턴을 등록하고 싶을 경우 아래와 같이 username 항목에 빈 중괄호를 넣어 주게 되면 wildcard 처럼 동작하게 된다.


['ORTH': 'User'}, {'ORTH': 'name'}, {'ORTH': ':'}, {}]


대규모의 용어를 매칭시켜야 할 경우 아래와 같이 사용할 수가 있다.



이벤트를 등록해서 발견된 패턴에 대해 entity를 등록해 주는 것도 가능하다.



아래와 같이 정규식을 사용할 수도 있다.



또한 spaCy에서는 정규식을 token flag로 변환해서 사용할 수도 있다.