티스토리 뷰
사용자가 “좋아하는 노래 있어요?” 라고 질문하는 경우를 생각해 보자. 이때 사용자는 노래대신에 음악, 팜송, K-POP, 곡 등 여러 표현으로 물어볼 수 있다. 즉 비슷한 말을 어떻게 알아 듣게 할 것인가 하는 문제이다. 이 역시 선택매칭([ ], 꺽은괄호) 또는 concept을 이용하여 처리할 수 있다.
선택매칭과 concept의 구문형식에 대해서는 이미 제3장 2절 듣고 말하기에서 설명하였기 때문에 이곳에서는 그 용도와 확장 사용에 대해서만 설명하기로 하겠다.[1]
A. u: ( 좋아* [노래, 곡, 음악, 가사, song] 있어요) 예. I love you를 좋아해요
B. concept: ~노래 [노래, 곡, 음악, 가사, Song]
u: ( 좋아* ~노래 있어요) 예. I love you를 좋아해요.
concept은 단어 외에 다른 컨셉을 구성요소로 가질 수 있기 때문에 위의 예제처럼 동의어에 사용할 수 있을 뿐만 아니라 여러 컨셉을 하나로 묶어 더 큰 집합으로 만들어 사용할 수도 있다. 예를 들어 애완동물이라는 컨셉에 강아지 컨셉, 고양이 컨셉 등의 개별 컨셉들을 함께 묶어 사용할 수 있다.
concept: ~강아지 [ 푸들 치아와 진돗개 도베르만 삽살개]
concept: ~애완동물 [ ~강아지 ~고양이 ~새 ~파충류]
concept: ~동물 [ ~애완동물 ~가축 ~야생동물]
위와 같이 선언할 경우 푸들 à 강아지 à 애완동물 à 동물이라는 계층화된 컨셉을 만들 수 있고 이렇게 개념화된 컨셉을 만들면 코드 작성시의 오류를 줄여줄 수 있을 뿐만 아니라 ~강아지, ~애완동물, ~동물이라는 한 단어로 각각 필요한 수준과 단계에서 그 안에 포함된 모든 요소들을 가리킬 수 있는 효율성도 갖게 해 준다.
그런데 이렇게 concept을 자주 활용하고 중첩해서 사용하다 보면 이미 만들어 놓은 것을 잊고 처음 선언하는 것으로 착각하여 중복 선언할 수가 있다. 만약 중복 선언을 하면 CS는 에러를 표시해 준다[2]. 이때는 최초 선언한 위치로 찾아가 수정할 수도 있겠지만 그 보다는 MORE 라는 명령어로 기존의 concept 요소를 확대시키면 더 간편하게 수정을 할 수 있다.
concept: ~강아지 MORE [ 마스티프 쉬나우저 테리어 도베르만]
이제 컨셉 “~강아지”에는 기존의 5가지 구성요소 외에 4 가지 요소가 추가 되었는데, 만약 동일한 요소를 중복선언하고 있다면 CS가 자동으로 제외한다. 위의 경우 도베르만이 중복이므로 나중에 추가한 도베르만은 자동으로 무시된다.
컨셉의 또 다른 장점은 다른 사람이 만든 컨셉을 복사해서 사용할 수 있다는 점이다. 따라서 기본이 되는 컨셉은 중복 작성하지 말고 서로 공유하는 것이 생산적일 것이다. 영문의 경우 약 1,600여 개의 컨셉이 소스화일과 함께 제공되고 있다.
이제 위의 대화 예제는 아래와 같이 좀 더 확장하여 작성할 수 있다. 사용자가 “좋아하는 곡 있어요?”, “아는 노래 있어요?” 로 질문한다고 가정하고 선택매칭을 추가하였다.
A. b: ( [좋아* 아*] ~노래) 예. I love you를 좋아해요
그런데 좀 더 정확하게 하기 위해 “있어요”라는 단어를 패턴에 넣을 수도 있다. 이때는 “있어요”, “있나요”, “있습니까?” 등을 모두 매칭할 수 있게 부분 와일드 카드를 쓰는 것이 좋다.
B. b: ( [좋아* 아*] ~노래 있*) 예. I love you 를 좋아해요
이제 룰D는 아래의 140가지 조합의 경우를 모두 매칭시킬 수 있게 되었다.
[1] 이 두 가지 방식은 코드의 간편성, 중복성이라는 측면에서 차이가 있을
뿐 아니라 CS가 매칭을 시도하는 방식에 있어서도 차이가 난다. 즉 CS는 선택매칭([ ])을 만나게 되면 그 안에 나열된 단어를 앞에서부터
순서대로 매칭을 시도해 보다 매칭이 되면 즉각 꺽은 괄호 밖으로 나와서 그 다음 단어, 위의 예제에서는
“있어요”를 찾기 시작한다.
반면에 컨셉을 만나면 CS는 컨셉에 포함된 모든 요소를 동시에 매칭 시도한다. 순서대로 매칭하는 것이 아닌데 이 차이의 결과에 대해서는 제7장 5절 S항목에서 자세히 설명하였다.
[2] 스크립트 작성이 끝나면 구문 에러를 체크하는 단계를 거치는데 이때 중복 선언이 있으면 에러를 표시해 준다. 테스트하는 절차와 방법은 제 6장 4절에서 설명하기로 한다
'3장. 기초 대화 가르치기' 카테고리의 다른 글
8. 외래어 표기 알아듣기 (0) | 2016.05.13 |
---|---|
7. 기본형과 활용형 (0) | 2016.05.12 |
5. 정반대로 알아 듣지 않기 (0) | 2016.05.12 |
4. 사용자 응답 예상하기 (예상 응답) (0) | 2016.05.11 |
3. 어순에 관계없이 알아듣기 (0) | 2016.05.11 |
- Total
- Today
- Yesterday
- chatscript chatbot 챗봇 한국어챗봇 ai 인공지능
- Chatscript AI 인공지능 챗봇 chatbot
- 한국어챗봇
- 챗봇개발 채팅로봇 한국챗봇
- 한글챗봇 우리말챗봇 인공지능챗봇 ai챗봇
- 소프트봇 채터봇
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |