正規式記述ガイド

正規式とは、多様に表現された文章を簡潔に表記できる表記法のことをいいます。

色んな種類の正規式表記法が存在するが、当社のビルダーではnlu_scriptという正規表現式を使います。以下のガイドを参照して正規式文法を学ぶことで、自然言語でカバーできなかった部分を一部でサポートすることができます。

作成方法は、次の通りです。

文法ガイド

基本表記法

1. special symbols

nlu_scriptで使用するspecial symbolsは、次の通りです。

( ) { } [ ] < > \ : + * ^ ~ = . | & - / `

もし、このようなsymbolを正規式の中に使いたい場合には、 ""で括って使う必要があります。

2. 放ち書き

トークンの間に放ち書きをしない場合、放ち書きの含まれたトークンはマッチされません。そのため、韓国語の用例上、放ち書きをができる箇所に最大限放ち書きをすることをお勧めします。

アンニョンハセヨ
-> アンニョンハセヨ(O)/アンニョン ハセヨ(X)
アンニョン ハセヨ
-> アンニョンハセヨ、アンニョン ハセヨ(O)

基礎表記法

1. [ ]

必須として表れるべき発話を表現する際に使います。

この表現は、重ねて使うことができます。

主に必ず現れるべき品詞の表現を括る方式で活用が可能です。

[注文|デリバリー|配送]して
-> 注文して、デリバリーして、配送して

2. ( )

選択的に表れることが可能な発話を表現する際に使います。

この表現は、重ねて使うことができます。

長い質問から省略できる助詞又は修飾語を括って表現する方式で活用が可能です。

アンニョン(ハセヨ|ハシンガ|ハニャ)
-> アンニョン、アンニョンハセヨ、アンニョンハシンガ、アンニョンハニャ

3. ::

トークン間の連結を表現するために使います。

この表現は、空白無しで入力する必要があります。

主に、語幹::語尾変形の連結のために使われます。

く[れ|ださい]
-> くれ、く れ、ください、く ださい
く::[れ|ださい]
-> くれ、ください

[父|母]が 部屋に 入られる
->父が 部屋に 入られる、父 が部屋に 入られる
[父|母]::が 部屋に 入られる
->父が 部屋に 入られる

4. " "

正規式の中に特殊文字を入力するために使います。

元気(か|なの)"?"
-> 元気?、元気か?、元気なの?

5. |

OR論理記号を意味します。

この表現は、普通 [] 又は()とともに使う必要があります。

[カロリー|熱量]教えて
-> カロリー教えて、熱量教えて

6. ~[ ]~

~[]~ の中に入力されたトークンを組み合わせるために使います。

入力されたトークンは、 ,で区分します。 但し、候補パターンが多くなりすぎることがあるため、 (順列; permutation) ~[]~ の内部にトークン数を5つ以下に制限します。

~[アカウント、作成]~方法
-> アカウント作成方法、作成アカウント方法

7. [ ]^

[] の中に入力されたトークンを繰り返し組み合わせるために使います。

  • [ ]^(a,b) : [] の中に入力されたトークンがa以上b以下の回数で繰り返されます。
  • [ ]^<a : []の中に入力されたトークンがa未満の回数で繰り返されます。
  • [ ]^>a : []の中に入力されたトークンがa超過の回数で繰り返されます。
[早く]^(1,3)
-> 早く、早く早く、早く早く早く(O)/早く早く早く早く(X)
[早く]^<3
-> 早く、早く早く(O)/早く早く早く、早く早く早く早く(X)
[早く]^>2
-> 早く早く早く、早く早く早く早く(O)/早く、早く早く(X)

8. <?>

任意の単語をマッチさせるときに使います。ただ、サイドエフェクトが発生するおそれがあるため、必要な場合にのみ使うことをお勧めします。

  • <?> : 任意の1文字の単語をマッチさせます。
  • <?>*? : 任意の単語をマッチさせます。任意の単語がない場合でもマッチされます。文字数の制限はありません。
  • <?>+? : 任意の単語をマッチさせます。任意の単語がない場合にはマッチされません。文字数の制限はありませんす。
[アンニョン]<?>
-> アンニョン? (O)/アンニョン チョルス君(X)
[アンニョン]<?>*?
-> アンニョン、アンニョン チョルス君(O)
[アンニョン]<?>+?
-> アンニョン チョルス君(O)/アンニョン(X)
[アンニョン]<ハセヨ>*?
-> アンニョンハセヨ、アンニョンハセヨ チョルス様(O)/アンニョン チョルス様(X)

9. \

マッチしてはならない発話内に例外トークンを指定する際に使います。wildcardの前後に例外トークンを入力し、ユーザーの多様な発話に対する制限を設けることができます。

[\キムチョルス] <?>^<5 [悲しい|いい|楽しい] 歌 かけて
-> いい 歌 かけて(O)/キムチョルス いい 歌 かけて(X)

10. @{ } , `@{ }

ビルダーの内部に登録されたドメインエンティティとシステムエンティティを入力する際に使います。

[登録されたドメインエンティティ]
@メニュー:チキン、ピザ

@{メニュー}[注文|デリバリー]
-> チキン 注文、チキン デリバリー、ピザ 注文、ピザ デリバリー

[登録されたシステムエンティティ]
`@{TELNUM}

`@{TELNUM}[照会|確認]して
-> 010-0000-0000 照会して、010-1234-5678 照会して...

に対する検索結果は~件です。 ""

    に対する検索結果がありません。 ""

    処理中...