시간, 날짜, 요일, 연도 등에 관한 값은 시스템이 직접 관리하고 있기 때문에 필요할 경우 시스템에 물어보면 된다. 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] 맞춤법이 흔히 틀리는 단어로는 역할, 오랜만이다, 설거지, 하마터면 등 많은 단어가 있는데 특히 채팅 상황에서는 오타가 흔히 ..
메신저로 문자 대화를 하는 경우 문자 이모티콘을 사용하는 경우가 있다. 예를 들면 :-(, :-), OTL 등 키보드 자판을 이용하여 말로 하기 곤란한 답을 간단히 대신하는 경우이다. 챗봇이 이런 이모티콘을 알아듣도록 하기 위해서는 LiveData 폴더에 있는 texting.txt 파일에 이 내용을 등록해 주면 된다. 이 파일을 열어보면 널리 쓰이는 문자 이모티콘 7개가 이미 등록되어 있는 것을 볼 수 있을 것이다. 이곳에 추가해 주면 되는데 등록할 때 그 이모티콘이 슬픔을 뜻하는 것인지, 기쁨을 뜻하는 것인지 등에 따라 옆에 적합한 컨셉을 함께 적어 주면 된다. 맨 마지막 줄의 신규등록은 사용자가 추가한 것이라 가정을 한 것이다. LiveData폴더 아래의 texting.txt 파일에 위의 내용을 입력..
대화의 문맥상 상대방이 투애니원의 "내가 제일 잘 나가"를 언급할 것이 예상된다고 가정해 보자. 그럼 이때 어떻게 하면 "내가 제일 잘 나가"를 4개 어절의 보통명사가 아니라 한 단어의 고유명사로 취급하게 할 수 있을까? 패턴에 겹 따옴표를 사용하면 된다. u: (“내가 제일 잘 나가” 들어 봤*) 그럼요, 저도 그 곡을 즐겨 들어요. 사용자가 겹따옴표 안에 들어있는 내용과 동일한 단어와 순서로 입력을 하면 CS는 그 일련의 단어들을 한 단어의 고유명사로 취급한다. 만약 겹 따옴표를 하지 않으면, CS는 저 4개의 어절을 각각 별도의 단어로 취급하여 아주 다른 결과를 내 놓을 수 있게 된다. 따라서 사람 이름, 회사 이름, 브랜드, 특히 영화 제목, 책 제목, 노래 제목 등 두 어절 이상으로 이뤄진 고유..
외래어 또는 외국어를 글로 표기할 때는 원어를 그대로 쓰는 경우도 있고 발음 나는 대로 한글로 쓰는 경우도 있다. 문제는 한글로 쓸 때인데 표준 표기법을 따르지 않고 제각각 다양하게 쓰는 것이 현실이기 때문에 표기가 달라도 동일한 단어로 인식하는 방법이 필요하다. 예를 들어 TV를 한글로 쓸 때는 티비, 티브이, 텔레비전, 텔레비죤, 텔레비, 테레비 등으로 사람마다 다양하게 표기한다.위의 대화 예제에서도 씨엘을 CL, 씨에루(팬들이 부르는 애칭) 등으로 표기할 수 있으므로 이를 컨셉으로 묶어 사용자가 어떻게 표기하든 놓치지 않도록 할 필요가 있다. concept: ~씨엘 [ 씨엘 씨에루 CL 이채린 “투애니원 리더” ]b: (~씨엘 *~2 좋아*) 그렇군요. 저는 박봄이 좀 더 좋아요. 위의 씨엘 컨셉에..