사용자가 “좋아하는 노래 있어요?” 라고 질문하는 경우를 생각해 보자. 이때 사용자는 노래대신에 음악, 팜송, K-POP, 곡 등 여러 표현으로 물어볼 수 있다. 즉 비슷한 말을 어떻게 알아 듣게 할 것인가 하는 문제이다. 이 역시 선택매칭([ ], 꺽은괄호) 또는 concept을 이용하여 처리할 수 있다. 선택매칭과 concept의 구문형식에 대해서는 이미 제3장 2절 듣고 말하기에서 설명하였기 때문에 이곳에서는 그 용도와 확장 사용에 대해서만 설명하기로 하겠다.[1] A. u: ( 좋아* [노래, 곡, 음악, 가사, song] 있어요) 예. I love you를 좋아해요 B. concept: ~노래 [노래, 곡, 음악, 가사, Song] u: ( 좋아* ~노래 있어요) 예. I love you를 좋아..
챗봇의 질문에 사용자가 늘 기대한 형식대로 답변을 하는 것은 아니다. 예를 들어 “좋아하는 가수 있어요?”라고 물었을 때 사용자의 답변은 크게 아래와 같이 두 가지가 가능하다. A. 저는 2NE1을 좋아해요B. 저는 2NE1을 안 좋아해요 위 답변의 어려운 점은 구문 형식은 흡사한데 뜻은 정반대라는 점이다. 우선 예제 A를 위한 패턴을 작성해 보자. C. u: ( ~2NE1 좋아* ) 이 패턴은 “저는 2NE1을 좋아해요”, “저는 2NE1이 좋아요” 등의 입력문과 매칭될 수 있다. 이제 사용자가 “무척 좋아해요”, “아주 많이 좋아해요” 등의 강조형으로 입력할 경우를 대비하여 패턴을 수정하면, D. u: ( ~2NE1 *~2 좋아* ) 그런데 이 패턴은 예제 B와도 매칭이 된다는 점이 문제이다. 이런 ..
챗봇이 예-아니오 형식의 질문을 한다면 사용자의 가능한 응답은 예, 아니오, 왜 물어요? 정도가 되겠지만 챗봇이 열린 질문을 한다면 그 때는 대비해야 할 사용자 예상 응답이 무척 많게 된다. 예를 들어 “라면 좋아하세요?”라는 질문에는 예, 아니오, 왜 물어요? 정도의 사용자 답변이 가능하지만 “좋아하는 요리가 뭐에요?”라는 열린 질문에 대해서는 수 십 개에서 수 백 개의 사용자 답변이 가능할 것이다. 더구나 각각의 답변이 다시 꼬리에 꼬리를 물며 대화가 이어질 수도 있기 때문에 각 상황에 맞는 답변을 준비하는 것은 내용상으로도 쉽지 않을 뿐만 아니라 형식상으로도 복잡할 수 있다. 위의 대화 예제는 이러한 열린 질문을 약식으로 정리해 본 것이다. 예제에서 보는 것처럼 열린 질문을 할 경우 그 답변은 크게..
사용자가 챗봇에게 “좋아하는 노래 있어요?”라고 묻는 상황을 가정해 보자. 이때 사용자는 아래와 같이 물어볼 수 있다. A. 좋아하는 노래 있어요?B. 노래 좋아하는 거 있어요? 어순이 중요한 영어에서도 구어의 경우 어순을 무시하는 경우가 많다고 하는데, 한국어와 같이 어순이 중요하지 않은 언어의 경우는 어순이 더더욱 무시될 수 있다. 이런 경우에는 순서에 상관없이 패턴과 사용자 입력문을 비교하는 것이 필요하다. 이때 사용하는 명령어가 >이다. C. u: (>) 예. I love you를 좋아해요. 패턴에 > 명령어가 있으면 CS엔진은 단어의 나열된 순서에 상관없이 그 단어들이 사용자 입력문에 나타나는가를 조사하여 매칭여부를 판단한다. 이제 룰C가 어떻게 사용자 입력문 B와 매칭되는지 확인해 보기로 하자..
챗봇이 K-POP을 좋아하냐고 물은 후, 사용자의 대답을 듣고 그에 적합한 응대를 함으로써 대화를 이어 나가는 예제이다. 이와 같은 대화가 가능하기 위해서는 첫째 사용자의 말을 “잘” 들어야 하며 둘째 “들은” 말에 대응하는 규칙이 준비되어 있어야 한다 사용자의 말을 잘 듣는다는 것은, 사용자가 이렇게 말할 것이다라고 예상하여 그 말과 매칭이 가능하도록 패턴을 준비해 놓는 것을 뜻한다. 위의 대화를 위한 스크립트를 보면, 로 작성되어 있는데 먼저 룰의 형식을 다시 한 번 복습해 보자. 이 룰은 사용자 입력문(u:)이 패턴(괄호 안의 내용)과 일치하면 오른쪽의 출력문을 출력하라는 룰이다. 이런 형식의 룰을 응답하기(responder) 룰이라고 부른다. 즉 사용자의 말에, 그것이 의문문이든 평서문이든 관계없..
사용자가 말을 걸기 전에 챗봇이 먼저 사용자에게 말을 걸 수 있다. 또는 챗봇에게 대화의 컨트롤이 왔을 때 사용자에게 새로운 화제를 제시할 수 있다. 이때 사용하는 규칙이 말걸기[1] (gambit) 규칙이다.챗봇에게 대화의 컨트롤이 오는 경우는 다음과 같은 경우이다. 사용자가 입력을 하면 챗봇에게 말할 차례가 온 것인데 이때, 챗봇이 하는 최우선 업무는 사용자 입력문에 일치하는 규칙을 찾는 일이다. 찾으면 그 규칙을 시행하게 되고 따라서 이 경우 대화의 컨트롤은 사용자가 갖고 있다. 사용자의 입력문에 챗봇이 대응하여야 하기 때문이다. 대신 사용자는 자연스런 대화를 하고 있다는 느낌을 받게 된다. 그런데 사용자 입력문에 해당하는 규칙을 발견하지 못한 경우에는 챗봇이 어떤 말이든 할 수 있는 상태가 된다...
CS는 사용자 입력문이 들어오면 입력문과 패턴을 비교하는데 어떻게 비교할 것인지는 패턴내에 함께 기술되어 있는 명령어에 따른다. 예를 들어 사용자가 아래와 얘기한다고 가정해 보자. a. 집에 간다b. 이모네 집에 간다c. 집에 간다 말하고 나왔다d. 집으로 간다 이들 문장 중 앞의 a, b, c 세 개 문장은 아래의 룰로 모두 매칭시킬 수 있다. (논의의 초점을 패턴에 맞추기 위해 출력문은 생략하였다) 룰A는 패턴 내에 별도의 명령어가 없는 경우인데 이런 경우 패턴 내에 나열되어 있는 단어가 사용자 입력문에 순서대로 연속적으로 나타날 경우에만 매칭되었다고 판단한다. 따라서 a와 같이 입력문과 패턴이 같거나 b와 c처럼 패턴이 입력문 내에 포함될 경우 일치한다고 판단한다.그러나 마지막 예문 d와는 매칭되지..
① 입력문, 패턴, 매칭, 출력문 사용자와 챗봇의 대화는 입력문, 패턴, 매칭, 출력문의 4가지 요소로 구성된다. 패턴과 출력문은 챗봇의 개발자가 미리 준비해 놓는 것이고 (이 둘을 묶어 룰이라 부름) 입력문과 매칭은 대화 중에 사용자와 챗봇에 의해 각각 실시간으로 입력되고 검토되는 것이다. 사용자 입력문이 들어오면 챗봇은 가지고 있는 룰 중에서 입력문과 일치하는 패턴을 찾는다. 이때 패턴을 기준으로 입력문을 조사한다. 즉 패턴이 입력문과 같거나 패턴이 입력문에 포함되면 일치하는 것으로 판단하고 준비되어 있는 출력문을 사용자에게 출력한다. A는 패턴과 입력문이 동일하므로 ‘일치’ 판정을 내리고 B는 패턴이 입력문에 포함되므로 ‘일치’ 판정을 내린다. C는 패턴에 있는 단어 ‘음악’이 입력문에 없기 때문에..
- 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 |