2

誰かがすでにWatsonの会話APIでユーザーによって入力された日付を取得する方法を知っていますか? Dialog APIでは、DATE_TIME_RANGEやFROM_DATEなどの標準エンティティを使用できますが、自分で新しいカスタムエンティティを追加する方法はありません。 私は、ダイアログAPI上で、このようにした検証を作成したい:ワトソンの会話APIのユーザー入力から日付を取得するにはどうすればよいですか?

<input> 
<grammar> 
    <item>$ (IATA)={var-from} * (IATA)={var-to} * (DATE_TIME_RANGE)={var-date1} * (DATE_TIME_RANGE)={var-date2}</item> 
    <item>$ (IATA)={var-from} * (IATA)={var-to} * (DATE_TIME_RANGE)={var-date1} * (DATE_TIME_RANGE)={var-date2} *</item> 
    <item>(IATA)={var-from} * (IATA)={var-to} * (DATE_TIME_RANGE)={var-date1} * (DATE_TIME_RANGE)={var-date2} *</item> 
    <item>(IATA)={var-from} * (IATA)={var-to} * (DATE_TIME_RANGE)={var-date1} * (DATE_TIME_RANGE)={var-date2}</item> 
</grammar> 
<output id="itinerario"> 
    <action varName="var-from" operator="SET_TO">{var-from.value:main}</action> 
    <action varName="var-to" operator="SET_TO">{var-to.value:main}</action> 
    <action varName="var-date1" operator="SET_TO">{var-date1.value:FROM_DATE}</action> 
    <action varName="var-date2" operator="SET_TO">{var-date2.value:FROM_DATE}</action> 
    <prompt> 
     <item>{var-from} {var-to} {var-date1} {var-date2}</item> 
    </prompt> 
</outputt> 

答えて

2

会話APIはまだその機能を持っていません。短期的には、正規表現を使用してクライアントアプリケーションで日付を抽出し、コンテキスト変数としてAPIに渡すことがあります。

+0

こんにちはデイヴィッドを使用してそれを行う方法について詳しく説明します。私は条件ノードでinput.text.matches関数を使って正規表現を検証できることを理解しました。そこで、2006-01-01が日付形式であるかどうかを検証するために、input.text.matches( "^ \ d {4} - \ d {2} - \ d {2} $")を使用しています。 –

2

あなたが値を抽出するノードの値を抽出するには http://www.ibm.com/watson/developercloud/doc/conversation/expression-language.html

(あなたが内部の好きな正規表現を追加)

input.text.matches('[0-9]+') 

で特別なノードにアクセスするための条件を使用することができます。コンテキスト変数内部

"context": { 
    "number_extract": "<? input.text.extract('[\\d]+',0) ?>" 
} 

のようなものを追加するには、ワトソンの会話で、現在できる最善である

(あなたが抽出内側にしたい任意の正規表現を置くことができます)。だから、日付を解析するためにあなた自身の正規表現を作らなければなりません。

私は個人的には、ワトソン前に来るカスタムパーサーを作る別のソリューションを使用します。 この男はalchemyAPI

https://kozhayasite.wordpress.com/2016/08/27/watson-conversation-with-alchemy-entity-extraction/

関連する問題