質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

Q&A

2回答

5800閲覧

Googleチャットで自動応答BOTのつくり方

spartan117

総合スコア3

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

0グッド

0クリップ

投稿2021/05/31 07:45

スプレッドシートに予め入力値と応答値を記入しておき、
Googleチャットにその入力値が入力されると自動で応答値を返すBOTをGASにて作成しました。

現段階ではこの一問一答のコードしかわからず、
入力値と完全一致したワードを入力しなければBOTが反応しません。

完全一致ではなく、チャットに入力されたワードに類似したものを、スプレッドシートの入力値一覧から探し出して応答するコードはどう書けばいいのでしょうか。

以下、一問一答のコードです。

GoogleAppsScript

1function onMessage(event) { 2 var said = event.message.text; 3 var ss = SpreadsheetApp.openById('xxxxxxxxxxxxxxxxx'); //[todo] 4 var sheet = ss.getSheetByName('xxx'); //[todo] 5 var values = sheet.getDataRange().getValues() //全データ取得 6 7 var result = "" 8 9 //スプレッドシートA列に質問、B列に回答とした場合 10 for(var i of values){ 11 if(said == i[0]){ 12 result = i[1] 13 break; 14 } 15 } 16 17 return { "text": result }; 18}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

入力するのが短い単語だと難しいかも知れませんが、レーベンシュタイン距離(編集距離)というものがあります。
予め用意した文字列と実際に入力された文字列の距離(類似度)を計算して、一番近いものを応答すれば良いと思います。

投稿2021/05/31 09:24

karintly

総合スコア68

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

spartan117

2021/05/31 10:20

レーベンシュタイン距離を使うとどういうコードになりますか?
karintly

2021/05/31 12:50

すみません、GAS/JSは全然使ってないので具体的なコードは示せません。 ただ、全体的な流れとしては、新たに配列を宣言して、用意した文字列の配列(質問文内のコードのvalues)とインデックスが対応するように距離を追加していって、ソートするなどして最小値のインデックスを取得すれば、そのインデックスで用意した応答にアクセスできるんじゃないかなと思います。 レーベンシュタイン距離で検索すれば色々コードが出てくると思うので、頑張ってみてください。
guest

0

今まさにhotなAIの分野です。
素のGAS / JSだけで実装はほぼ無理だと思います。

あらかじめ、類義語をリスト化しておき、入力された単語が一致すれば回答を返すなどの簡易的はものならなんとかなると思いますが。。。

自然言語処理と検索すれば、いろいろな情報が見つかりますのでそちらを参考にするといいかと思います。

https://cloud.google.com/learn/what-is-natural-language-processing?hl=ja

投稿2021/05/31 08:18

Tatsunosuke

総合スコア599

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問