안녕하세요! 코딩 레시피의 원노입니다!
뭔가 엄청나게 오랜만인 기분이네요😅😅 기분 탓이겠죠??
(다음부터는 안 빠질게요ㅠㅠㅠ)
저번 시간에 머신러닝 기능으로 챗봇을 업그레이드 하는 기능을 해봤습니다.
이렇게 20개 이상의 "사용자 발화"를 입력하면
이렇게 "머신러닝" 기능을 사용할 수 있었고.
그러면 미리 입력하지 않은 발화도 챗봇이 "알아서 잘" 이해해서 출력해줬습니다.
관련 내용을 자세히 보려면 링크를 클릭해주세요.
그런데 제가 마지막에 다양한 블록이 있다면 머신러닝의 정확도가 떨어진다고 이야기 했었죠?
이걸 보완할 수 있는 "핵심 키워드"가 존재합니다.🤩
한 번 같이 해볼게요!
1. 개념 설명
제가 챗봇 시스템에서 가장 중요한 건 "사용자 발화"라고 이야기했었던 것 기억 나시나요?
그래서 우리는 "머신러닝"기능을 통해서 챗봇이 인식할 수 있는 사용자 발화의 갯수를 늘려줬습니다.
그렇다면 "머신러닝" 기능이 얼마나 사용자 발화를 늘려줬는지 간략히 수식으로 확인해볼게요.
1. "사용자 발화" 입력만 하기 👉 입력한 갯수만큼만 추가 👉 N개
2. "사용자 발화" & 머신러닝 👉 입력한 갯수 + 머신러닝 인식의 경우(계산 불가) 👉 (N + a) 개
여기서 머신러닝으로 늘어난 발화의 갯수는 비슷한 사용자 발화를 사용하는 블록이 늘어나면 점점 더 갯수가 줄어듭니다.
그런데 머신러닝은 문장 구조, 형태를 분석하는 방식으로는 동작됩니다.
그래서 단순히 "사용자 발화"만 입력한다면 인식율은 점차 떨어지게 됩니다.
이를 해결하기 위해 챗봇들은 단순히 발화 뿐만 아니라, 문장에 "키워드"를 추가할 수 있게 하고 이를 기준으로 "키워드" & 문장 구조 로 발화를 인식하게 했습니다.
이 "키워드"를 카카오 i open builder 에서는 엔티티라고 부릅니다.
그러면 "엔티티"를 사용하면 얼마나 발화의 갯수를 늘려주는지 비교해볼까요?
3. "사용자 발화" & 엔티티 👉 엔티티 갯수 * 문장 구조 갯수 👉 N2(엔티티 갯수) * N 개
4. "사용자 발화" & 엔티티 & 머신러닝 👉 엔티티 갯수 * (문장 구조 갯수 + 머신러닝 인식의 경우의 수) 👉 N2 * (N + a) 개
압도적으로 4번이 제일 많은 발화의 갯수를 가지겠죠?
그래서 좋은 챗봇의 기획에서 "엔티티" 설계는 큰 비중을 가집니다.
좀 더 관심 있으신 분들은 링크 참고해주세요!
2. 엔티티 사용하기
직접 한 번 해보겠습니다.
일단 "kakao i open builder"부터 접속하셔야겠죠??
아직 베타테스터 권한이 없으면 코딩 레시피 2화 챗봇 준비편
"2. kakao open i builder 베타테스터 신청" 부분을 확인해주세요!
2.1. 엔티티 추가하기
메뉴 화면에서 상단 오른쪽에서 "엔티티" 버튼을 선택해주세요.
그러면 이런 화면이 나옵니다.
여기서 우리 챗봇의 엔티티, 핵심 키워드를 추가해줄 수 있습니다.
아직 감이 안 오실 수도 있으니 저를 따라서 해볼게요.
기존에 우리가 만들었던 챗봇에서 자기소개 기능이 있었는데
이번에는 제가 애정하는 "무민"의 자기소개 블록을 새로 만들어볼게요.
"무민" 자기소개 블록을 더 잘 인식시키기 위해서 무민이라는 엔티티를 만들어보겠습니다.
나의 엔티티 관리 옆에 + 버튼을 선택하고
그리고 아래 이미지와 같이 따라해주세요.
이는 사용자가 파란색 박스 안에 있는 내용들을 입력하면 moomin(빨간색 박스)이라는 엔티티로 인식할 수 있게 만든 겁니다!
2.2. 엔티티를 사용하는 블록 만들기
이제 무민 자기 소개 블록을 만들어볼게요.
저는 이러한 방식으로 만들어봤어요.
2.3. 엔티티 추가해서 발화 만들기
이제 사용자 발화를 추가할 건데 아까 만든 "엔티티"를 포함해서 발화문을 만들거에요.
(⚠ 아까 엔티티 추가했을 때 파란색 박스에 있던 부분을 포함하라는 이야기입니다!)
그러면 아래와 같이 파란색 밑줄이 쳐진 상태로 만들어져요.
그 부분을 드래그하면 아래와 같이 나옵니다.
여기서 빨간 부분을 선택하면 "엔티티"가 추가된 발화문이 완성이 됩니다.
한 번 저장하고 확인해볼까요
그러면 원래 입력했던 "무민 자기소개하기"도 잘 인식되고
이렇게 엔티티 부분을 동의어로 입력했던 내용으로 바꿔서 입력해도 잘 인식이 됩니다.
그래서 "엔티티", 키워드만 명확하게 잘 입력하고, 문장 구조 부분은 "머신러닝" 기능을 통해서 경우의 수를 늘린다면 더 정확하게 말을 이해하는 챗봇을 만들 수 있겠죠?
이렇게 더하기를 곱하기로 만드는 "엔티티" 기능을 간단히 살펴봤습니다.
다음 시간에는 이 "엔티티"를 활용하는 다양한 방법에 대해서 알려드릴게요!
그러면 지금까지 따라해주셔서 감사하구요!
화이팅!! 다음 주에 봐요!! 🙋♀ 🙋♂
의견을 남겨주세요