Luis를 사용하면 간단히 몇가지 개념을 알고 가야한다. 크게 잡아보자면, intent와 entity가 있다.
짧게 말하자면, 의도다. 이 intent에는 여러가지 예제를 넣을 수 있다.
intent: 날씨확인
examples:
오늘 날씨 어때?
오늘 더워?
오늘 추워?
내일 날씨 어때?
각 example에는 여러 entity를 labeling하여 학습할 수 있다.
(regex나 list 형식은 자동 labeling이 되어진다.)
그럼 여기서 entity는 뭘까?
intent의 요소나 아이템 정도로 생각하면 된다.
조금 자세히 말해보자면, entity는 문장에서 추출될 수 있는, 유저의 의사와 관계있는 데이터 정도로 표현할 수 있을것 같다.
entity에는 machine learend, list, regex, pattern.any 라는 4가지의 종류가 있다.
자세한 설명은 아래에 이어진다.
machine learend entity는, label된 예제들을 기반으로 entity를 뽑아낸다.
machine learning algorithms과 labeling을 통하여, 내 app에 조금 더 맞춤화 시킬 수 있다.
아래 이미지는, TicketOrder라는 machine learned entity 가 있고, 안에 number, passengerClass, TravelClass라는 subentity가 labeling된 모습이다.
이와 같은, labeling을 통해 machine learning algorithm이 해당 entity에 대해 학습하게 된다.
정해진 요소에 동의어를 많이 설정하여 사용하는 entity이다.
예를 들어,
entity: 노트북
synonym: 놋북, 랩탑, laptop, 휴대용컴퓨터
utterance에 labeling은 자동으로 된다.
regular expression과 매치되는 entity를 리턴한다.
regex의 지옥이 또 열리려하는건가!?
utterance에 labeling은 자동으로 된다.
특정 패턴이 정해져 있을 때, entity를 가져오는 방법이다.
이렇게 설명하면 이해가 어려우니 아래를 보자.
utterance에 labeling은 자동으로 된다.
위와 같이, 정해진 패턴에 단어들이 바뀔 때, 해당 단어를 entity로 들고 올 수 있다. pattern.any는 role을 등록하여 자주 쓰는데, 해당 role의 값으로 entity를 리턴 받을 수 있는 장점이 있다.
조금 더 자세하게 보자면, 아래와 같다.
Luis를 처음 접했을 때의 나처럼, intent와 entity 그리고 entity 종류에 대해서 숨이 턱 막힌 사람들에게 도움이 되면 좋겠다.