固有表現とは、人名や場所そして日付などのことを指し、自然対話プラットフォームでは<get>
タグで、ユーザ発話から固有表現を抽出することができます。
<pattern>
タグの*
や_
を組み合わせることで、よりユーザ発話に合ったシステム発話を記述することができます。
固有表現抽出方法
固有表現を抽出するには、<get>
タグで下表のPredicateを取得します。
Predicate一覧
固有表現抽出におけるPredicateは全て読み取り専用です。
ユーザ発話から固有表現が抽出できなかった場合はundefined
が返されます。
Predicate名 | 説明 |
_namelister_ne |
固有表現の種類を問わず、発話内で最初に現れた固有表現を取得します。 |
_namelister_ne_N (Nは1~8の整数) |
固有表現の種類を問わず、発話内でN番目に現れた固有表現を取得します。 |
_namelister_ne_[種別] |
指定した種別の固有表現のうち、発話内で最初に現れた固有表現を取得します。 使用可能な種別については、後述の種別一覧をご覧ください。 |
_namelister_ne_[種別]_N (Nは1~8の整数) |
指定した種別の固有表現のうち、発話内でN番目に現れた固有表現を取得します。 使用可能な種別については、後述の種別一覧をご覧ください。 |
種別一覧
種別 | 内容 |
ORG |
組織名 |
PSN |
人名 |
LOC |
場所 |
ART |
固有物名 |
DAT |
日付表現 |
TIM |
時刻表示 |
MNY |
金額表現 |
PCT |
割合表現 |
固有表現抽出使用例
Example – 1
xAIML
1 2 3 4 5 6 |
<category> <pattern>*</pattern> <template> <get name="_namelister_ne"/> </template> </category> |
実行結果
1 2 |
user > 私の名前は砂場太郎で、出身地は東京です。 bot > 砂場太郎 |
Example – 2
xAIML
1 2 3 4 5 6 |
<category> <pattern>*</pattern> <template> <get name="_namelister_ne_2"/> </template> </category> |
実行結果
1 2 |
user > 私の名前は砂場太郎で、出身地は東京です。 bot > 東京 |
Example – 3
xAIML
1 2 3 4 5 6 |
<category> <pattern>私の名前は*</pattern> <template> <get name="_namelister_ne_PSN"/> </template> </category> |
実行結果
1 2 |
user > 私の名前は砂場太郎です。 bot > 砂場太郎 |
Example – 4
xAIML
1 2 3 4 5 6 |
<category> <pattern>私の出身地は*</pattern> <template> <get name="_namelister_ne_PSN"/> </template> </category> |
実行結果
1 2 |
user > 私の出身地は東京です。 bot > undefined |
Example – 5
xAIML
1 2 3 4 5 6 |
<category> <pattern>私の名前は*</pattern> <template> <get name="_namelister_ne_PSN_2"/> </template> </category> |
実行結果
1 2 |
user > 私の名前は砂場太郎で、弟の名前は砂場次郎です。 bot > 砂場次郎 |