2018/04/24
スロット値抽出APIは、リクエストで送られた文章からあらかじめ定義されたスロット(何らかのタスクの実行に必要な属性情報)に対応する値を抽出します。例えば、「名前は田中太郎です」という文章からは、姓と名からなる氏名のスロットに対して、姓が田中という値、名が太郎という値、といったようにスロット値を抽出します。入力に含まれる文字列をそのまま抽出するだけでなく、正規化された値も同時に抽出できますので、抽出した値を簡単に利用することができます。
スロット値抽出APIを利用することにより、「あなたの名前を教えて!」、「あなたの生年月日を教えて!」と言った問いかけを行い、取得した名前や生年月日に応じた発展的な会話を行うチャットボットなどを開発することが可能になります。また、音声認識システムと組み合わせて利用することで、オペレータのかわりに氏名や生年月日を伺い、本人性の確認を自動的に行うコールセンタシステムを開発したりすることが可能となります。
スロット値抽出APIでは、氏名(姓、名)、生年月日、性別、住所、電話番号、年齢の基本的な情報がスロットとして定義されており、これらの情報を簡単に抽出できます。
https://labs.goo.ne.jp/api/slot
application/x-www-form-urlencoded、application/json形式でのPOSTを受け付けます。
※GETは受け付けませんのでご注意ください。
パラメータ名 | 説明 |
---|---|
app_id (Required) | アプリケーションID |
request_id | リクエストID 省略時は"labs.goo.ne.jp[タブ文字]リクエスト受付時刻[タブ文字]連番"となります。 |
sentence (Required) | 解析対象テキスト |
slot_filter | スロットフィルタ name(氏名)、birthday(生年月日)、sex(性別)、address(住所)、tel(電話番号)、age(年齢)のうち、スロット値抽出の対象とするスロットを文字列で指定します。複数指定する場合は、"|"で区切って複数記載してください。省略時はすべてのスロットを対象とします。 |
JSONフォーマットのテキスト形式となります。Content-typeは"application/json; charset=UTF-8"となります。
パラメータ名 | 説明 | ||
---|---|---|---|
request_id | リクエストと同じ値となります。 | ||
slot_filter | リクエストと同じ値となります。 | ||
slots | スロットフィルタで指定した値をキーとして持つオブジェクトです。指定されなかった場合、キーは存在しません。指定され値が抽出できなかった場合、キーは存在しますが値は空配列となります。 | ||
name | 氏名スロット 例){"surname":"山田","given_name":"太郎"} |
||
surname | 姓スロット 解析対象テキストで姓と判別された値が入ります。 |
||
given_name | 名スロット 解析対象テキストで名と判別された値が入ります。 |
||
birthday | 生年月日スロット 例){"value":"大正10年1月1日","norm_value":"1921-01-01"} |
||
value | 解析対象テキストで生年月日と判別された値が入ります。西暦、和暦に対応します。 | ||
norm_value | valueをYYYY-MM-DD形式に正規化した値が入ります。正規化できなかった場合、生年月日から算出した年齢が許容する値とならない場合はnullとなります。 | ||
sex | 性別スロット 例){"value":"男","norm_value":"男性"} |
||
value | 解析対象テキストで性別と判別された値が入ります。 | ||
norm_value | valueを正規化した値が入ります。男性または女性となります。 | ||
address | 住所スロット 例){"value":"東京都港区芝浦3丁目4ー1","norm_value":"東京都港区芝浦三丁目4-1","lat":35.643462,"lon":139.746042} |
||
value | 解析対象テキストで住所と判別された値が入ります。 | ||
norm_value | valueを正規化した値が入ります。都道府県名が補完され、丁目は漢数字、番地は半角数字となります。 | ||
lat | norm_valueが取得できた場合、住所の緯度が入ります。 | ||
lon | norm_valueが取得できた場合、住所の経度が入ります。 | ||
tel | 電話番号スロット 例){"value":"(090)0000-1111","norm_value":"09000001111"} |
||
value | 解析対象テキストで電話番号と判別された値が入ります。国内電話番号に対応します。 | ||
norm_value | valueを正規化した値が入ります。数字のみの値となります。 | ||
age | 年齢スロット 例){"value":"三十路","norm_value":30} |
||
value | 解析対象テキストで年齢と判別された値が入ります。 | ||
norm_value | valueを正規化した値が入ります。年齢として許容する0~125の数字となります。正規化できなかった場合はnullとなります。 また、生年月日が指定されており、かつスロット値が抽出できた場合は、自動計算した値となります。(このときvalueはnullとなります。) |
エラーレスポンスについてはこちらに詳細がございますので、適宜ご参照下さい。
APIを利用するための手順についてはこちらで説明していますので、ぜひご活用ください。利用登録はこちらからお願いします。
当APIを活用したWEBサービス、アプリも歓迎致します。ご相談はこちらからお問い合わせお願い申し上げます。