이번에는 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 나는 = 난 + 난 멋져 - 나도 그렇게 생각해
해당 응답에서 "난 멋져"라는 메시지 뿐만 아니라 "나는 멋져"라는 응답에 반응 할 수 있고, 동일한 단어를 이렇게 대치어로 해서 훨씬 유연하게 우리가 원하는 챗봇을 만들 수 있습니다.
'프로그래밍 > RiveScript' 카테고리의 다른 글
[Tutorial] Alternatives and Optionals (0) | 2017.03.07 |
---|---|
[Tutorial] TRIGGERS (0) | 2017.03.07 |
[Tutorial] FIRST STEPS - Line Breaking (0) | 2017.03.06 |
[Tutorial] FIRST STEPS - Random Replies (0) | 2017.03.06 |
[Tutorial] FIRST STEPS - Hello, Human! (0) | 2017.03.06 |