steemit chatbot 을 만들어 보자 - (1) 챗봇 개념 이해하기

in #kr7 years ago (edited)

steemit chatbot 을 만들어 보자

(1) 챗봇 개념 이해하기


chat bot을 만들면서 그 과정을 포스팅으로 공유하려고 합니다.

원래는 지금 만들고 있는 부동산 chat bot으로 해볼까 했는데 steemit에서 연재를 하는 것이니 steemit에 관련된 chatbot을 만들어보는게 의미가 있지 않나 싶네요. 실제로 사용하는 것보다 이런 느낌으로 만든다 정도로 보시면 좋을 것 같습니다 ㅎ

일단 chat bot이 무엇이냐 하면..
chat bot은 음성이나 대화로 인간과 대화를 하는 것을 목적으로 만들어진 프로그램입니다.

대표적인 chatbot으로 애플의 siri, 삼성의 빅스비 등이 있습니다.

chatbot.jpg
시리에게 빅스비 어떠냐고 물어보았다

현재는 chatbot 개발 오픈 플랫폼들이 잘 되어 있어서
chatbot을 개발하기 위해서 바닥부터 개발할 필요는 없습니다.

그렇지만 개발에 사용되는 기본적인 개념들은 오픈 플랫폼들도 다 동일하기 때문에
기본적인 개념을 이해 할 필요는 있습니다.

이번 포스팅에서는 챗봇과 관련된 기본 개념들을 아래 예시를 들어 설명해 보겠습니다.

아래 예시는 내일 날씨를 물어보는 chat bot과의 간단한 대화입니다.

chatbot에서는 문장을 발화(utterance)라고 하고 발화의 목적을 intent 라고 지칭합니다.

스크린샷 2017-12-28 02.04.56.png

위의 예시에서는 내일 수원 날씨 어때? 라고 물어봤을 때는
날씨 문의 가 목적이니 intent는 날씨 문의가 됩니다.

entity는 범주화가 가능한 단어들의 단위로 어떤 entity를 생성하는 가에 대한 결정은 대화에서 어떤 단어를 알아야 내가 제공하고자 하는 기능을 제공 할 수 있을지에 대한 고민에서 시작됩니다.

사람이 날씨를 물었는데 대답을 해 주기 위해서는 어느 시간, 어느 장소에 대해서 묻는 것임을 대화에서 알아야 합니다. 이 경우 시간과 장소에 대한 entity 생성이 필요할 것입니다.

그리고 이렇게 intent와 entity를 인식 후 chat bot이 해야할 행동을 action이라고 합니다.
위의 예시에서는 chatbot은 문장의 entity와 intent를 제대로 인식하고 문의했던 수원의 날씨 정보 안내를 수행하였습니다.

그리고 사람은 수원의 날씨 정보를 듣고 안양은? 이라고 이어서 질문합니다.
이 문장은 내일 안양 날씨 어때? 를 간단히 물어본 것이지만 chatbot은 이전 대화에서 추출한 intent와 entity를 이용하여 이 질문 역시 날씨에 관련된 질문임을 알 수 있습니다.

사람이 문맥(context)를 통해 생략된 문장을 이해하는 것처럼 chatbot 역시 이전 발화의 이어진 정보를 받아 올 수 있는데 이 정보들을 context라고 합니다. 이렇게 대화가 이어지는 흐름을 dialog flow라고 합니다.

이 용어들은 대부분의 플랫폼에서 공통적으로 사용되는 용어이므로 길어도 한 번 봐두면 좋을 것 같습니다.

다음 포스팅에서는 dialogflow 플랫폼을 사용해 실제적으로 chatbot을 만들어 보겠습니다.

Sort:  

와 ^-^ 챗봇의 원리에 대해서 궁금했는데 .. 그렇다면 삼성 빅스비나 저런것은 intent와 entity을 하나하나씩 다 입력한 것인가요 ?

사실 회사에서 어떻게 chatbot을 만들었지를 공개하지 않기 때문에 하나하나씩 다 입력했는지는 모르겠습니다 ㅎㅎ 보통 자연어처리는 말뭉치(corpus)를 만드는 것부터 시작합니다. 대화마다 해당 intent와 entity 정보를 입력한 것을 tagged corpus라고 하는데 사람이 직접 태깅하는 경우도 있고 기계 학습으로 지동으로 문장에서 intent와 entity를 잡기도 합니다 : )

아 이런글 너무좋습니다. 개발방법론에 대해 잘 알고갑니다.
저도 개발자라서요!

오 개발자이시군요. 개발자분은 묻지도 않고 팔로우합니다 ㅎㅎ!

어렵지만 전혀 알지 못한 정보를 얻은 듯 합니다 :) 감사합니다!

긴 글 읽어주셔서 감사합니다 : )

Coin Marketplace

STEEM 0.20
TRX 0.14
JST 0.030
BTC 67200.37
ETH 3331.98
USDT 1.00
SBD 2.77