-
[Google Chatbot Dialogflow #8] 날씨 엔티티 만들기Chatbot 2020. 6. 17. 12:56
2020/06/16 - [Chatbot] - [Google Chatbot Dialogflow #7] 날씨 인텐트 만들기 및 응답 설정하기
[Google Chatbot Dialogflow #7] 날씨 인텐트 만들기 및 응답 설정하기
2020/06/16 - [Chatbot] - [Google Chatbot Dialogflow #6] 커스텀 인텐트 만들기 [Google Chatbot Dialogflow #6] 커스텀 인턴트 만들기 2020/06/12 - [Chatbot] - [Google Chatbot Dialogflow #5] Welcome Inten..
vexper.tistory.com
이전 포스팅에서는 날씨 사용자 인턴트를 만들었고, 장소와 날자 시스템 엔티티를 입력받아서 응답하는 부분까지 만들었다. 이번 포스팅에서는 "날씨"를 사용자 엔티티로 추가하는 과정을 진행할 것이다.
엔티티(Entity, 항목, 개체)는 사전이다. 우리가 외국어를 공부할 때 처음 찾게되는 것이 사전이고, 사전이 없으면 외국어 공부가 불가능하다. 이는 단지 외국어 뿐만이 아니다. 우리가 새로운 회사에 입사하거나 새로운 업종으로 전환 하였을 경우 처음에 가장 어려움을 겪는 부분은 해당 분야의 전문용어를 몰라서 그 쪽 도메인 사람들의 대화를 이해하지 못함에 있다.
사전에는 단어와 함께 단어의 동의어와 유사어가 명시되어 있다. 사전은 단어의 설명에 집중한다면, 인텐트는 동의어와 유의어를 하나의 그룹으로 만들어진다. 이러한 유사어가 그룹핑된 용어사전인 인텐트는 발화자가 "날씨", "비", "눈", "흐림"과 같은 단어들을 발화자가 이야기 할 때 어떤 인텐트인지 분류 하는데 활용된다.
1. 날씨 엔티티 만들기
1) Dialogflow 콘솔에서 Entities 옆에 + 버튼을 눌러 사용자 엔티티를 추가한다.
2) "Weather" 영어로 엔티티의 이름을 설정하고 저장버튼을 누른다.
3) 엔티티에서 가장 중요한 항목이다. 왼쪽에 엔티티 주제에 관련된 정의하고 싶은 단어를 입력하고 오른쪽에 동의어를 입력한다.
예를들어 "날씨"라는 주제에는 기온, 더위, 추위, 건조, 눈, 비와 같은 단어들이 포함 될 것이고 "더위"라는 라는 주제의 유의어와 유사한 표현으로 "덥다", "온도가 높다" 등이 추가될 수 있다.
4) 엔티티에 옵션을 추가할 수 있는데 동의어정의(Define sysnonyms)는 기본적으로 유사어 항목을 등록하는 옵션이다. 정규 표현식 항목(Regexp Entity)은 생일, 주민번호, 전화번호, 이메일주소와 같이 정해진 자릿수와 특부수호로 연결된 표현식 정의에 사용된다. 자동확장 허용(Allow automated expansion)은 머신러닝으로 통해서 유사한 언어를 자동으로 인식하는 것이다. 마지막으로 퍼지 일치(Fuzzy matching)은 단어의 순서에 상관없이 매칭시켜주는 것이다. 예를 들어 "작고 빨간 공", "빨간 작은 공"을 동의어로 인식한다.
엔티티에 개체항목(엔티티, 항목 이라는 용어가 다 유사하기 때문에 엔티티에 넣어진 데이터를 개체라고 부른다.)을 추가한 후 SAVE버튼을 눌러 저장한다.
2. 날씨 인텐트에 날씨 엔티티 할당하기
1) Dialogflow 콘솔에서 인텐트로 이동하여 지난 포스팅에서 작성해둔 Weather 인텐트 설정으로 들어간다.(방금 만든 엔티티가 아니라 인텐트 이다.)
2) 훈련 문구에서 "날씨 어때"와 같이 "날씨"가 포함된 문구에서 "날씨"를 마우스로 드래그해서 선택하면 엔티티 항목을 정의할 수 있는 팝업창이 나타난다. 여기서 방금 만든 @Weather 항목을 선택해 준다.
훈련 문구에 날씨와 관련된 문구인 "흐려", "비와", "추워", "더워" 등을 추가해 주고 날씨 엔티티로 설정해준다.
응답(Text Response)에 $date, $geo-capital, $Weather 변수를 사용하여 응답을 작성해준다. 저장버튼과 ML TRAIN 버튼을 눌러 수정한 날씨 인텐트를 학습시킨 후 테스트를 해보자.
"하늘에서 $Weather가 내려요"와 같은 자연스러운 표현을 다수 등록해줘야 챗봇의 품질이 좋아진다. ML 훈련을 마쳤으면 Try it now칸에 날씨관련 질문을 해보고 그에 따른 응답이 잘 나오는지 확인해 본다.
지금까지는 발화자의 질문에 챗봇이 응답하는 부분까지 정리하였다. 하지만 날씨를 확인하기 위해서는 날씨 서비스에 접속해서 날씨정보를 받아와야 한다. 외부 서비스에 접속해 API를 통해 정보를 받아오는 과정은 Fulfillment에서 webhook과 같은 기능을 통해서 구현된다.
'Chatbot' 카테고리의 다른 글
[카카오톡 챗봇 만들기 #2] 카카오톡 챗봇 생성하기 (0) 2020.06.18 [카카오톡 챗봇 만들기 #1] 회원가입 및 채널 생성하기 (0) 2020.06.18 [Google Chatbot Dialogflow #7] 날씨 인텐트 만들기 및 응답 설정하기 (0) 2020.06.16 [Google Chatbot Dialogflow #6] 커스텀 인텐트 만들기 (0) 2020.06.16 [Google Chatbot Dialogflow #5] Welcome Intent, Fallback Intetn 설정 (0) 2020.06.12