먼저 코드를 보면, Tablemacro: ^ConsonantPP(^Origin ^pp)loop(){ $$element = ^iterator(? member ^Origin) $$tmp = join($$element ^pp) ^CreateFact($$tmp member $$element)} Tablemacro라는 키워드에서 Table은 가로와 세로로 나열된 2차원 표를 말하는 것이며(엑셀의 시트를 생각하면 된다) macro는 자주 사용하는 연산식을 모듈화 해 놓음으로써 재사용이 간편하도록 만든 것이라는 뜻이다. Tablemacro는 CS에 등록된 명령어이다. 그 뒤에 이름 ^ConsonantPP가 나오는데 이는 작성자가 임의로 정한 것이며, 괄호 안의 인수명과 인수의 갯수도 작성자 필요에 따라 정하면 된다...
이제 토픽에 한글 키워드를 등록하는 방법을 알아보자. 대화관리자는 토픽의 키워드 목록을기준으로 대화를 관리하기 때문에 이 절이 가장 중요하다 할 수 있다. 과일에 관한 토픽을 아래와 같이 작성한다고 가정해 보자. Topic: ~계절과일 [ 사과 배 포도 딸기 봄 여름 가을 겨울 ]#! 봄에는 딸기가 제철이지요u: ( 봄* 딸기* 제철*) 예. 봄철의 딸기는 향이 참 좋아요 만약 예제 입력문 대로 사용자가 입력한다고 하면, 이 룰은 절대 매칭되지 않는다. 왜냐하면 예제 입력문과 토픽의 키워드 목록간에 일치되는 단어가 없기 때문이다. 예제 입력문에는 ‘봄에는’, ‘딸기가’ 등이 있고 ~계절과일 토픽에는 ‘봄, ‘딸기’가 있을 뿐 일치되는 단어가 없다. 따라서 ~계절과일 토픽이 활성화 되지 않고 소속되어 있는..
사전은 대화의 출발점이다. 사전에 등재되지 않은 단어를 토픽의 키워드로 사용하면 토픽이 활성화 되지 않기 때문이다. 사전에 등재되지 않는다고 에러가 되지는 않지만 CS내부적으로는 그 단어를 제외하고 처리하기 때문에 그 단어가 입력되었을 때 토픽이 활성화 되지 못하게 된다. 당연히 룰 매칭도 일어나지 않는다. 따라서 :build를 할 때 토픽 키워드에 등재한 단어가 not known word 라는 경고를 받게 되면 반드시 단어 등재를 해야 한다. 단어를 사전에 등재하는 방법은 두 가지가 있는데 하나는 내장되어 있는 기본사전이나 보조사전에 등재하는 방법, 또 하나는 사용자가 만드는 사용자사전에 등재하는 방법이다. 기본 사전은 텍스트로 만들어진 사전을 이진화일로 만든 것이기 때문에 탐색속도가 매우 빠르다는 장..
CS에서 제공하는 함수는 10개 분류 약 170여 개에 이른다. 이 중에서 아래의 4개 함수는 대화를 전개해 나가는데 매우 유용한 함수이니 그 용도와 사용법을 꼭 익혀 두도록 하자. A. ^refine()사용자의 질문이나 답변 내용이 3~5개 정도의 선택폭을 가지고 있다고 생각될 경우, 일단 하나의 룰로 사용자의 응답을 캐치한 후 그 세부 내용에 따라 챗봇의 답변을 출력하도록 2단계로 룰을 작성할 수 있다. 이때 사용하는 함수가 refine함수이며, refine 함수는 뒤따라오는 예상응답과 매칭을 검토하라는 명령어이다. 예를 들면, u: ( _~가수 좋아* ) ^refine()a: (_0?~투애니원) 노래 정말 잘하지요.a: (_0?~티아라) 히트곡이 많은 걸그룹이지요.a: (_0?~마마무) 요즘 인기가..
① 토픽, 컨셉, 기본형가. Topic : 사용자의 의도 파악 및 연관된 룰을 모아 놓은 논리적 묶음나. Concept : 동의어나 유사 개념의 모음. 또는 관련된 요소들의 집합다. 기본형(canonical form) : 동사나 형용사 등의 원형. 사용자의 입력형(original input)에 대비되는 말.② 토픽의 종류 3가지가. Story topic나. reactor topic다. quibble topic③ 룰의 종류 3가지가. 말걸기(Gambit)나. 응답(Responder)다. 예상응답(Rejoinder)④ 패턴 연산자 : 총 7개이며 패턴 내에는 최대 5개의 단어를 작성할 수 있다.가. ( ) : 나열된 단어 모두가 순서대로 일치나. [ ] : 나열된 단어 중 하나만 일치다. { } : 나열된 ..
서비스를 시작하면 챗봇은 모든 대화를 기록으로 남긴다. 그리고 챗봇의 운영자는 이 대화 기록을 활용함으로써 챗봇의 대화 능력을 향상시킬 수 있다. 그런데 이 로그화일은 읽기가 쉽지 않다. 부가 정보가 뒤섞여 있기 때문인데 이때 trim 명령어를 사용하면 필요한 내용만 발췌해서 볼 수 있다. 이 명령어는 USERS폴더에 기록된 로그 파일에서 작성자가 필요로 하다고 지정한 내용을 추출하여 TMP폴더에 기록한다. 운영자는 이 파일을 분석하여 룰이나 토픽, 키워드 등을 보완하면 된다. 명령 형식은 trim hercules 6 이다. 이 명령은 hercules 라는 사용자가 남긴 로그화일에서 hercules가 얘기한 내용만 추출하여(숫자 6의 의미) TMP 폴더아래에 tmp.txt 라는 파일에 저장하라는 뜻이다...
대화 단위 테스트까지 끝났다면 이제 ‘작동’은 문제가 없다는 뜻이다. 마지막 단계로 대화내용을 점검하고 regression 테스트를 진행하도록 하자. 대화 내용의 점검이란 말걸기 규칙과 응답 규칙이 “말이 되는지”, 어색하거나 추가할 것은 없는지를 검토하는 것이다. 더불어 모든 토픽의 키워드 지도를 만들어 키워드도 함께 검토하도록 한다. ① :abstract story ~topicname CS언어에 맞춰 작성한 스크립트는 조건식이나 변수명, 매칭 연산자 등이 섞여 있을 수 있기 때문에 대화의 흐름을 쫓아 읽어 나가기가 쉽지 않다. 이럴 때 abstract 명령어를 사용하면 대화 내용만 별도로 추출하여 읽을 수 있다. abstract 명령어에 위와 같이 story 옵션을 주면 말걸기만 출력해 준다. 주석이..
대화 테스트는 작성한 모든 토픽과 룰을 대상으로 마치 처음 접하는 사용자인 것처럼 무작위로 대화를 걸어보는 테스트이다. 대본에 없는 말이나 순서를 뒤바꾸어 말을 걸었을 때 챗봇이 어떻게 반응하는가를 보고 수정이나 보완할 요소를 찾는 것이다. 따라서 대화 테스트는 룰 매칭이 되는가 하는 점보다는 대화 문맥에 맞는 대답을 하는가가 초점이 되며 이는 어떤 토픽이 활성화 되는가를 찾는 것과 같게 된다. ① :why 방금 전 챗봇의 대답이 왜 나왔는지 어떤 토픽의 어떤 룰과 매칭이 되어 그 답변이 나왔는지 근거를 보여 준다. 챗봇이 예상치 않은 답변을 보였을 때 유용한 툴이다. 어떤 토픽의 어떤 툴인지 보여 주므로 필요한 수정 작업을 할 수 있다. ② :show topics대화 테스트를 하기 전에 :show to..
① :verify keyword 또는 :verify ~topicname keyword 몇 차례 반복해서 하는 이야기이지만 입력문과 룰과 토픽은 키워드를 공유해야 한다. 그래야 사용자 입력문에 적합한 토픽과 룰이 활성화 되기 때문이다. 따라서 룰을 정교하게 작성하는 것보다 더 중요한 것이 키워드를 공유하도록 작성하였는가 하는 점이고, 바로 verify keyword 명령어로 이를 알아 볼 수 있다.사용법은 명령어 뒤에 옵션으로 keyword를 적어주면 되는데, verify명령어는 해당 토픽 또는모든 토픽을 대상으로 예제 입력문과 해당 토픽의 키워드를 비교하게 된다. 만약 공유하는 키워드가 없다면 문제가 될 수 있다. 사용자가 그 예제를 입력하였을 때 그 토픽이 활성화되지 않을 것이기 때문이다. 따라서 예제..
먼저 사용자 입력문이 들어 오면 CS 내부에서 어떻게 전처리(pre-processing) 하는지부터 알아 보기로 하자. ① :prepare 입력문 :prepare 명령어는 주어진 입력문을 챗봇이 어떻게 전처리 하는지 보여준다. 만약 이 전처리가 의도와 다르다면 룰매칭이 안되는 것은 당연하기 때문에, 룰매칭이 안되는 경우 전처리에서 잘못되고 있지는 않은 지 알아 봐야 한다. 사용법은 :prepare 명령어 뒤에 확인해 보려는 문장을 넣으면 되는데, 예를 들면, A. :prepare 내가 제일 잘 나가 들어 봤어요?[1] 이 결과는 아래의 "prepare 명령을 실행한 결과 화면"에서 볼 수 있는데, ①번은 명령어이고 ②번은 전처리의 작업목록을 보여 주고 있다. 여기에서는 모두 7가지 전처리를 하고 있는데,..
- Total
- Today
- Yesterday
- 소프트봇 채터봇
- Chatscript AI 인공지능 챗봇 chatbot
- 한국어챗봇
- chatscript chatbot 챗봇 한국어챗봇 ai 인공지능
- 챗봇개발 채팅로봇 한국챗봇
- 한글챗봇 우리말챗봇 인공지능챗봇 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 |