2017-08-25 4 views
1

Screenshot 2The one screen shot of this error問題私は、シラバスを教えるシラバスのアプリであるapi.aiを使用してアプリケーションを構築していますが、分岐や学期のような望ましいパラメータで呼び出すと、それぞれの個人的な意思を作ったとしても、時にはsem 4とbranch electronicsにsem 3 sem 4や他のブランチを表示するように尋ねられたときに、時々見逃してしまいます。私はsemとブランチを指定したとしても、これを得るにしてもいくつかの呼び出しステートメントを与えています。 api.aiの行動の自由な30sのために手動でそれを訓練してみました。 Webフック、コンテキスト、イベントを使用していません。google-Api.aiのエラーを解決する方法

+1

こんにちはPrithviraj、いくつかのスクリーンショットを追加してください、あなたがしようとしていることを理解するためにここで非常に役立つでしょうか。 – Sukh

+0

同意します。インテントのスクリーンショットや、何を言っているのか、何が失敗しているのかなどの例を含めることができれば、何が起こっているのかを理解するにはかなり時間がかかります。 – Prisoner

+0

スクリーンショット: - 1)https://lh3.googleusercontent.com/x69dXer9sRfJs4rnmWZRtEINV4ySbnfvExEdMbVnfPlEzlGmoY8Qoih5EPsEEPUP6AHqPWcKvgOj3oQ=w1600-h745-rw 2)https://lh5.googleusercontent.com/1CUzqxysvJ6qjT5EvHcYEu8MF7wQ-KiraDlxFFRNmOLYHArboIJSTgmcUPM8yoBY-VwJ43C4BlFUaw8=w1600-h745-rw 3)HTTPS: //lh4.googleusercontent.com/pfpOJFBQXheM_ZNKBeBcx4YPZi6HX0c7X5oDU2NXMMs5irOI_6QhhHKAAGfNJxosvo9kErb2Hnznn48=w1600-h745-rw –

答えて

0

簡単なトリックは、私は、ただ、支店および学期の両方に保存されたエンティティを持っているsys.originalパラメータを使用し、それぞれの意図を誘発するための一般的なフレーズは、最大保存しなかった何だろうハードワーク。

1

短い答え - スクリーンショットhttp://imgur.com/a/tVBlD

長い答えはここをチェック - あなたは二つの選択肢

1を持っている)必要に各ブランチタイプ(コンピュータ科学、市民、通信)のための3つの別々のカスタムエンティティを作成します。あなたのブランチパラメータにアタッチしてください。

2)sys.anyエンティティを使用してブランチパラメータにアタッチします。入ってくるパラメータ値がサーバ上に何であるかを決定し、ウェブフックを介して応答を返す。

もしあなたが2番目のルートに行くなら、到着パラメータ(API.AIからJSONを介して送られた)をチェックするIFステートメントの中で、webhookと 'computer science'のような認識された単語を作成する必要があります。このルートはもっと難しくなりますが、シラバスを見つけて返すためにアクセスするバックエンドアーキテクチャがあるため、関係なく移動する必要があります。

メモ:2番目のルートは、同様の問題を解決するために行ったものです。

正規表現を使用して、ハードコーディングとif文の量を制限するリスト内の項目と一致させることもできます。

Pythonの正規表現検索の例

 baseurl = "http://mywebsite.com:9001/" 
     # Parse the document 
     # Build the URL + File Path and Parse the Document  
     url = baseurl + 'Data' 
     xmlLink = urllib.request.urlopen(url) 
     xmlData = etree.parse(xmlLink) 
     xmlLink.close()  

     # Find the number of elements to cycle through 
     numberOfElements = xmlData.xpath("count(//myData/data)") 
     numberOfElements = int(numberOfElements) 
     types = xmlData.xpath("//myData/data") 


     # Search the string   
     i = 0 
     while numberOfElements > i: 
      listSearch= types[i].text 

      match = re.search(parameter, listSearch, re.IGNORECASE) 

      if match is None: 
       i += 1 
      else: 
       # Grab the ID 
       elementID = types[i].get('id') 
       i = 0 
       break 
+0

うん!私はそれが1つのステップを試してみたことも知っていました。私の行動は、ブランチとセメスターの両方で別々のエンティティを作ってみる必要があったからです。今では同じモデルで結果を得ることができます。正確な結果を得るために7/10倍と言うことができますが、他の3つについては心配しています。そして2段目で述べたようにWebフックを使用していることに気付いていましたが、ハードコーディングではif文の数百になるでしょう。しかし、そこでさえ私はユーザーに正確な学期とブランチを私に教えてもらいたい。そして、私は学期と枝が一致する相反するシナリオを持っています。 –

+0

正規表現を使ってみましたか?あなたはあなたが持っているリストの何かに着信パラメータを一致させるようにしようとする場所をルーティングする何かをすることができるかもしれません。私はPythonで正規表現を使用して私の答えに例を追加しました。それはあなたが探しているものかもしれません。 私は非常に短いリスト(おそらく20-30音楽ジャンルでした)で同様の解決策を使用しましたが、そのジャンルは明示的に行われていましたので、そのジャンルは「プレイパーティーミュージック」または「プレイダンスミュージック」と言えます「ダンス/パーティー」として分類されています。また、私は実際にこの特定の仕事のためにPythonには新しく、拾いにくく、すばらしい言語です。 –

+0

私の答えを更新しました。正規表現(正規表現)で完全一致を見つけることができます。答えに追加した正規表現の私の例はこれを示していませんが、それは簡単です。 [正確な一致例を持つ別の質問があります。](https://stackoverflow.com/questions/7879600/using-anchors-in-python-regex-to-get-exact-match) 間違いなくハードコーディングで。そしてもう一つのこと。そのルートのパラメータとしてsys.anyを使用することができます。 –

関連する問題