Skip to content

ユーザーの入力の正規化について

Robot-Inventor edited this page Feb 2, 2021 · 3 revisions

ユーザーの入力の正規化について

ORIZIN Agentはユーザーの入力をoa_core.pyのnormalize()関数を用いて正規化してから辞書ファイルを参照します。正規化のルールは次のとおりです。

正規化前 正規化後
ひらがな カタカナ
漢数字 算用数字
全角英数字 半角英数字
全角記号 半角記号に変換可能な場合はunicodedata.normalize("NFKC", str)で変換
大文字のアルファベット 小文字のアルファベット
ヴァ、ヴィ、ヴゥ、ヴェ、ヴォ バ、ビ、ブ、ベ、ボ
全/半角スペース 削除
削除
_ 削除
- 削除
タブ 削除
改行 削除

また、上記に加え、resource/dictionary/normalize_dictionary.otfdの記述にしたがって正規化を行います。

normalize_dictionary.otfdはotfdフォーマットです。ユーザーが入力した文字列中のindexがvalueに置き換えられます。

indexは/を区切り文字として複数指定でき、正規表現をサポートしています。

valueは/を区切り文字として複数指定できません。複数指定すると正常に動作しない可能性があります。