프로그래밍/RiveScript

[Tutorial] The Begin File

프리월드 2017. 3. 7. 17:37

이번에는 RiveScript의 brain이 무엇인지 알아보겠습니다.


RiveScript brain이라고 표현하는 이것은 RiveScript 문서 집합을 의미 합니다.

 (a "brain" is a set of RiveScript documents)


RiveScript brain은 begin.rive라는 문서가 포함되어 있어야 합니다.

가장 유용한 기능중에 하나가 이번에 확인 하게 될 내용은 substitutions 기능입니다.


우리는 이 substitutions을 이용하여 변환할 단어를 미리 지정할 수 있습니다.

예를 들어 what 's라는 단어가 whats로 변환합니다. 이를 통해 사용자의 메시지에

회신하는 방법을 효과적으로 제어 할 수 있습니다.


가장 먼저 begin.rive 파일부터 아래에서 확인 할 수 있습니다.

! version = 2.0

// Bot variables
! var name = Tutorial
! var age  = 5

// Substitutions
! sub i'm     = i am
! sub i'd     = i would
! sub i've    = i have
! sub i'll    = i will
! sub don't   = do not
! sub isn't   = is not
! sub you'd   = you would
! sub you're  = you are
! sub you've  = you have
! sub you'll  = you will
! sub what's  = what is
! sub whats   = what is
! sub what're = what are
! sub what've = what have
! sub what'll = what will
! sub who's   = who is


Definitions

또한 // 문자가 무엇인지 궁금 할 수 있습니다. 대부분의 프로그래밍 언어 에서처럼 RiveScript를 사용하면 소스 코드에 주석을 표현합니다. // 문자는 주석의 시작을 나타냅니다. 인터프리터는 코드를 읽을 때 이러한 주석을 무시합니다. 

이제 이러한 새로운 정의 유형을 살펴 보겠습니다.

먼저 두 개의 Bot 변수를 정의했습니다. ! var name = Tutorial은 이름을 정의하고 ! var age = 5는 나이를 정의합니다.  이후 봇 변수를 사용하여 봇이 사용자에게 자신에 대해 조금이라도 알려줄 수있는 답글을 작성할 수 있습니다.

예를 들어, 제 이름은 {name} 입니다. 나이는 {age} 에요.

그다음은 substitutions입니다.  ! sub i'm는 i am로 정의해서 i'm 내용과 i am을 같은 대치어로 정의 할 수 있습니다.

다음 예제를 작성해보겠습니다.

+ what is up
- Not much, you?
- nm, you?
- Not a lot, you?

+ you are a bot
- How did you know I'm a machine?

실제로 실행해서 테스트를 하게 되면 substitutions을 정의하기 전에는 "what's up"이라고 입력하면 응답하지 못했지만 begin.rive에 대치어를 정한다음 실행하게 되면 "what's up"과  "what is up"에 대해서 동일한 응답을 하는 것을 확인 할 수 있습니다.

한글로 사용한다면??



한글로 사용한다면??

! version = 2.0

// Substitutions
! sub 나는     = 난

+ 난 멋져
- 나도 그렇게 생각해

해당 응답에서 "난 멋져"라는 메시지 뿐만 아니라 "나는 멋져"라는 응답에 반응 할 수 있고, 동일한 단어를 이렇게 대치어로 해서 훨씬 유연하게 우리가 원하는 챗봇을 만들 수 있습니다.