질문을 받으면 그 질문에 답변하는 대신 왜 그 질문을 하는지 먼저 물어 보고 그 후에 답을 하는 경우가 있다. 이때 제대로 답을 못하면 최초 질문에 대한 답도 기대하기 어렵다. 따라서 챗봇의 질문을 작성할 때는 사용자가 “왜” 라고 질문하는 경우에 대비해야 한다.이 대비에는 두 가지가 필요한 데 첫째는 예상응답 목록에 "왜"를 추가해야 하는 것이고 둘째는 사용자가 "왜"라고 질문을 하고 챗봇이 그에 대해 답변을 했다면, 그 후 다시 대화를 원점으로 되돌려서 최초 질문에 대한 사용자의 답을 기다려야 한다는 점이다. 아래의 예문을 보자. 위의 예문처럼 대화를 진행시키기 위해서는 왜 물어보냐는 질문에 대답을 한 후 최초의 질문으로 돌아와서 사용자의 답변을 기다리도록 대화 컨트롤을 재설정해야 한다. 이럴 때 사..
챗봇은 같은 말을 반복하지 않도록 작성할 수 있지만, 사용자는 같은 질문을 또 할 수 있다. 잊었을 수도 있고 챗봇이 어떻게 나오나 일부러 반복해서 물어볼 수도 있다. 이때 “아까 말했었는데… 잊었나 봐요. 제가 좋아하는 노래는 I love you에요” 라고 답변한다면 단순히 “제가 좋아하는 노래는 I love you에요” 라고 답하는 것보다는 좀 더 지능이 있다고 느끼게 될 것이다. 이렇게 답하기 위해서는 첫째 사용자의 질문이 반복이라는 것을 알아채야 하고 둘째 “아까 말했었는데…” 와 같은 문구를 오직 반복 질문일 때만 출력하도록 통제할 수 있어야 한다.먼저, 상대방이 중복해서 질문할 만한 내용을 찾아 다음과 같이 장기기억 변수에 값을 세팅해 놓자. A. t: MyFavorite () 저는 I lov..
한 토픽 내에 복수 개의 말걸기가 있을 경우 가장 위에서부터 차례로 출력되기 시작하며, 응답하기나 예상응답 등도 맨 위에서부터 차례로 매칭 여부를 점검하며 진행된다. 그리고 출력에 성공한 룰은 재사용이 되지 않도록 자동으로 ‘사용되었음’ 표시가 된다. 즉 챗봇이 한 번 한 말은 사용자에게 반복해서 말하지 않도록 CS가 관리한다. 만약 그 룰이 필요하다면 명시적으로 호출하여 재사용할 수 있다. 이 대원칙 하에 Label과 reuse[1] 함수를 사용하여 다음과 같은 형식으로 스크립트를 작성하면 같은 말을 되풀이 하는 것도 방지하고 코드 효율성도 높일 수 있게 된다 A. t: FaveSong ( ) 저는 I love you를 좋아해요.B. u: (좋아하는 노래가 뭐에요) reuse(FaveSong) 룰A는 ..
이제 대화 중에 숫자를 계산해야 하는 경우를 생각해 보자. CS에서는 두 가지 방식으로 숫자를 계산할 수 있는데 첫째는 수식을 직접 작성하는 방식이고 두 번째는 함수를 이용하는 방식이다. 수식을 직접 작성하여 그 결과값을 변수에 기억시켜 놓고 활용하는 방식은 우리가 수기로 방정식을 작성하는 형식과 유사하다. 예를 들어 사용자와 챗봇이 가격 흥정을 하는 아래와 같은 상황을 가정해 보자. A. u: (얼마에요) 정가 1만원인데 10%할인해서 9천원에 드릴께요a: (천원만 더 깎아주세요) 8천원에 달라고요? 저는 남는 게 없어요.a: (좀 깍아주세요) 위의 예제에서 “8천원에 달라고요?” 라고 챗봇이 말하기 위해서는 사용자가 말한 “천원”이라는 문자숫자를 아라비아 숫자 “1,000”으로 변환하고 이를 내부에서..
대화를 올바르게 이어나가기 위해서는 앞선 대화 내용을 기억해야 하는 경우가 많다. 예를 들어 “이번 일요일에 등산을 가요” 라고 했는데 잠시 후에 “일요일에 뭐 하세요” 라고 묻는다면 상대방은 자신의 말에 주의를 기울여 주지 않았음을 알게 될 것이다. 사람 간의 대화에서 이런 일이 잘 발생하지 않는 것은 앞서 나눈 대화 내용을 서로 기억하고 있기 때문이다. 마찬가지로 챗봇도 같은 질문을 반복하지 않아야 하는데 이를 위해 첫째, 후속 대화의 전제가 되는 사용자의 발언은 장기 기억장치에 저장해 두어야 하며, 둘째 사용자에게 질문할 때는 질문하기 전에 이미 주고 받은 내용인지 확인해야 한다. 위에 제시한 대화 예제는 모를 때만 질문하도록, 그러니까 필요한 정보를 이미 얻었으면 묻지 않도록 챗봇의 질문에 조건을..
대화의 화제거리로 흔히 쓰이는 영화, 만화, 소설, 음악, 스포츠 등은 지식과 경험이라는 두 개의 축을 가지고 대화를 이어 나갈 수 있는 소재이다. 예를 들면 매트릭스라는 영화를 안다는 지식 측면과 매트릭스를 보았다라는 경험 측면의 두 축을 바탕으로 서로 묻고 답하고 교감할 수 있다. 위의 대화 예제도 일상 대화에서처럼 경험을 묻고 있는데 이렇게 경험을 물었을 때는 사용자의 답변을 잘 기억해 두어야 향후 이어지는 대화에서 문맥에 맞는 질문이나 답을 할 수 있다.앞 절에서 설명한 매치변수가 한 룰 내에서 유효한 단기기억이라면 이번 절에서는 룰과 룰 사이에 공유할 수 있는 장기기억에 대해 알아보기로 하자. 이는 작성자 변수라고도 하는데 작성자가 만들고 작성자가 삭제할 수 있기 때문이며 $(달러 표시)로 시작..
스크립트를 작성하는 시점에는 사용자가 씨엘을 좋아한다고 할 지 박봄을 좋아한다고 할지 알 수 없다. 따라서 출력문을 위와 같이 만들려면, 사용자가 말한 것을 실시간으로 저장해서 사용해야 한다. 먼저 패턴을 작성해 보면, A. u: ( ~씨엘 *~2 좋아*) 위의 룰은 “씨엘을 좋아해요”, “저는 씨엘을 가장 많이 좋아해요”, “CL이 좋아” 등을 매칭시킬 수 있다. 이제 이 룰에서 사용자가 말하는 씨엘을 변수로 저장해 보자. 이를 위해 _(under bar)명령어를 사용한다. B. u: ( _~씨엘 *~2 좋아*) 이렇게 컨셉 앞에 _(under bar)를 붙이면 사용자가 컨셉 ~씨엘에 포함되어 있는 여러 단어 중에 한 단어를 입력할 경우 그 단어를 임시 변수에 저장하도록 한다. 임시 변수라는 것은 이 ..
시간, 날짜, 요일, 연도 등에 관한 값은 시스템이 직접 관리하고 있기 때문에 필요할 경우 시스템에 물어보면 된다. u: ( 몇 시에요 ) 지금 %hour : %minute 이에요 u: ( 몇 시에요 ) %time 에요 u: ( 오늘 * [요일 며칠] ) 오늘은 %monthname %day %date 입니다. 그런데 시스템 변수는 숫자 값만 주기 때문에 위의 출력문은 다음과 같이 출력된다. 지금 15: 28 이에요. 15:28 에요 오늘은 April 15 Thursday 입니다 위의 출력문을 “15시 28분”, “Thursday입니다” 등과 같이 시간 단위를 붙이고 띄어쓰기도 가다듬기 위해 시스템 변수에 시간 단위나 종결 조사를 붙여 쓰면 오류가 난다. “%hour시 %minute분” 이라고 쓰면, CS..
자연어 대화라고 해서 문자만 사용하는 것이 아니라 숫자도 많이 사용하며 경우에 따라 즉석에서 간단한 계산을 해야 하는 때도 있다. 우리의 일상 대화를 보면 나이, 키, 몸무게, 걸음 수, 수면시간, 집주소, 전화번호, 버스번호 등 숫자로 표현되는 단어가 많으며 특히 가격이나 할인폭 등은 대화하는 도중에 실시간으로 계산을 해야 하기도 한다. 위에 제시한 대화 예제는 나이를 묻고 답하는 상황인데 나이는 숫자이지만 문자숫자(text number)로 많이 표현하는 개념이라 연산을 하기 위해서는 먼저 아라비아 숫자로 변환하는 것이 필요하다. 예를 들어 사용자가 아래 중 어느 하나로 입력하더라도 “17”이라는 숫자로 캐치해 낼 수 있어야 한다. A. 열일곱 살 이에요B. 십칠 세 에요C. 17살 이에요 첫째로 생각..
“단언컨대”는 “단언컨데”로 자주 쓰이는, 맞춤법이 빈번하게 틀리는 단어이다. 이런 경우 자주 틀리는 부분에 와일드카드를 사용함으로써 사용자 입력을 놓치지 않을 수 있다. 즉 u: (단언* 한류 그룹) 예. 정말 독창적인 그룹이지요. 이런 미봉책이 아니라 보다 근본적인 방법으로는 replace 명령어로 보조 사전을 만들어 매칭을 시도하기 전에 먼저 사용자가 틀리게 입력한 문장을 교정하는 것이다. replace: 단언컨데 단언컨대replace: 단언건데 단언컨대 이렇게 replace를 이용해서 만들어진 보조사전은 TOPIC폴더 내에 private1.txt로 저장되고 반영된다.[1] 맞춤법이 흔히 틀리는 단어로는 역할, 오랜만이다, 설거지, 하마터면 등 많은 단어가 있는데 특히 채팅 상황에서는 오타가 흔히 ..
- Total
- Today
- Yesterday
- 소프트봇 채터봇
- 한글챗봇 우리말챗봇 인공지능챗봇 ai챗봇
- 한국어챗봇
- chatscript chatbot 챗봇 한국어챗봇 ai 인공지능
- 챗봇개발 채팅로봇 한국챗봇
- Chatscript AI 인공지능 챗봇 chatbot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |