프로그래밍/RiveScript

[Tutorial] FIRST STEPS - Random Replies

프리월드 2017. 3. 6. 17:05

우리가 만든 봇이 항상 똑같은 방식으로 반응 한다면 빨리 지루해질 수 있습니다. 

이러한 이유로 RiveScript를 사용하면 임의의 응담을 트리거에 쉽게 추가 할 수 있습니다!

Random Replies을 사용하는 방법은 아래와 같이 사용할 수 있습니다.

+ how are you
- I'm great, how are you?
- I'm good, you?
- Good :) you?
- Great! You?
- I'm fine, thanks for asking!

테스트를 하게되면 우리의 봇은 "how are you"라는 트리거에 아래의 5가지 메시지를 랜덤으로 응답하게 됩니다.

또 다른 방법으로는 {random}태그를 사용하여 임의의 응답을 랜덤으로 받는 방법도 있습니다.

+ say something random
- This {random}message|sentence{/random} has a random word.

이렇게 사용입력한 스크립트를 테스트하게 되면 다음과 같은 결과를 얻을 수 있습니다.

{random}{/random}사이에 |로 문자열을 분리하면 분리된 문자열 내에서 랜덤으로 하나씩 선택해서 응답하게 됩니다.


A Note About Style

RiveScript 문서를 멋지고 깔끔하고 읽기 쉽도록 유지하려면 다음과 같은 지침의 가이드 라인을 제공합니다.

빈 줄을 사용하여 논리 그룹 코드를 분리하십시오.

예를 들어, 트리거와 그 응답은 함께 그룹화되어야 하며 공백 행은 다른 트리거 및 응답 사이를 구분합니다.

그렇게 하면 아래와 같이 구분되어질 것입니다.

! version = 2.0

+ hello bot
- Hello, human!

+ how are you
- I'm great, how are you?
- I'm good, you?
- Good :) you?
- Great! You?
- I'm fine, thanks for asking!

Let's Talk About Weight

랜덤 응답은 확실히 유용하지만, 일부 응답은 다른 응답보다 빈도수를 조정하고 싶을 수도 있습니다. 

응답 커멘드에서 {weight}태그를 사용하여 다른 응답에 비해 빈도수를 재정의 할 수 있습니다. 

+ greetings
- Hi there!{weight=20}
- Hello!{weight=25}
- Yos kyoco duckeb!

여기에서 각 응답에 가중치(weight)를 할당하고 하나의 횡성수설 한 응답 하나를 남겼습니다. "Hi there!" 은 46번의 응답 중에 20번 선택 됩니다. "Hello!"는 46번의 응답 중 25번 선택 될 것이고, "Yos kyoco duckeb!"는 46번 중 1번만 선택됩니다. 가중치 태그를 포함하지 않는 응답의 가중치는 1입니다. 이렇게 응답의 확률은 가중치를 합으로 나눈 값입니다. (20 + 25 + 1 = 46, 그래서 각각의 응답은 46의 확률 중에서 선택)

* 가중치는 0이 될 수 없으며 음수가 될 수 없습니다.

{random}태그 안에는 가중치를 사용할 수 없습니다.

'프로그래밍 > RiveScript' 카테고리의 다른 글

[Tutorial] TRIGGERS  (0) 2017.03.07
[Tutorial] The Begin File  (0) 2017.03.07
[Tutorial] FIRST STEPS - Line Breaking  (0) 2017.03.06
[Tutorial] FIRST STEPS - Hello, Human!  (0) 2017.03.06
What is RiveScript?  (0) 2017.03.06