見出し画像

【Pythonコード】あなたにもSiriが作れる?! チャットボットを作成しよう

画像1

みなさんはチャットボットをご存知でしょうか?

これはチャットが交わせるボット(ロボット)という意味で、ユーザーが入力した言葉を読み取って、あたかも会話しているかのように反応を返すプログラムのことです。聞きなれない言葉かもしれません。しかしこの記事にたどり着けているみなさんであれば、必ず一度は使ったことがあるはずです。

SiriやGoogleアシスタントなどの対話型AIは、あまりにも自然に会話ができるので意識しにくいかもしれませんが、実はこのチャットボットという技術がもとになっています。これらのサービスは、チャットボットと音声認識技術の合わせ技で実現しています。

仕事やプライベートの連絡のためのツールは、メールからLINEなどのチャットに移行しました。チャットといえば人間対人間のコミュニケーションを思い浮かべる方が多いと思いますが、AI技術の進歩した今、必ずしもそうとは言えなくなってきています。

この記事では、今注目されつつあるチャットボットが実際にどのような形で利用されているのかを紹介します。そして実践編として、Pythonを使った簡単なチャットボットのコードを掲載し、実際にどんな仕組みで動いているのかを体験してもらいたいと思います。

1. Pythonのチャットボットとは何か

画像2

1-1. Pythonのチャットボットとは会話できるプログラムである


日本語の文章は単語毎に別れておらず、そのままではコンピューターが単語間の関係や品詞を判別することはできません。そこでPythonの提供しているJanomeのようなライブラリを利用し、分かち書き(単語ごとに分ける)をした上でそれぞれの単語の品詞を判別することで、文章の意味を読み取らせます。

この作業のことを、形態素解析と呼びます。

「私はPythonを学ぶ」→「私」「は」「Python」「を」「学ぶ」


それではコンピューターが文章の意味を理解できるとして、それが具体的にどのような形でチャットボットに利用されているのでしょうか? Siriを例にして説明したいと思います。


「Hey, Siri」と声をかけることでSiriが起動します。


この後例えば、「Aさんに日程変更を伝えるメールを出して」と指示を出した時のことを考えてみましょう。

1−2. PythonのチャットボットをSiriを例にして解説

まずiPhoneのマイクによって感知された音声をもとに、音声認識によってテキストデータに変換します。このテキストデータはスマートフォンの画面に表示されます。そしてこのテキストデータを形態素解析して文章の意味を読み取るわけですが、ここで大事な点が一つあります。

試しにiPhoneを機内モードにしてみてください。Siriが使用できなくなるはずです(Androidでも同様)。

これはどういうことかというと、Siriがテキストデータを解析するためにAppleのサーバーにアクセスするからです。

Siriの文章解析には、AIが使われています。そのAIは、みなさんがお持ちのスマートフォンの中にあるわけではありません。AIの計算には高性能のコンピューターが必要となるため、中心的なサーバーを用意して、ユーザーがそれを使うタイミングでそこへアクセスするという仕組みになっています。iPhoneの通信を断つとSiriが使えなくなるのはその為です。

iPhoneに表示されたテキストデータは一旦Appleのサーバへと送られ、そこで形態素解析されます。試しにJanomeを使って例文を解析すると、以下のようになります。

Aさんに日程変更を伝えるメールを出して


A 名詞,固有名詞,組織,*,*,*,A,*,*
さん 名詞,接尾,人名,*,*,*,さん,サン,サン
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
日程 名詞,一般,*,*,*,*,日程,ニッテイ,ニッテイ
変更 名詞,サ変接続,*,*,*,*,変更,ヘンコウ,ヘンコー
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
伝える 動詞,自立,*,*,一段,基本形,伝える,ツタエル,ツタエル
メール 名詞,サ変接続,*,*,*,*,メール,メール,メール
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
出し 動詞,自立,*,*,五段・サ行,連用形,出す,ダシ,ダシ
て 助詞,接続助詞,*,*,*,*,て,テ,テ

MACのターミナルに出力された結果をそのまま出しているので、少々読みづらいかもしれませんが、単語毎の品詞が表示されています。

こうして解析された単語の中からAppleのサーバーにあるプログラムは、”メール”という名詞に注目して、ユーザーがメールの送信をしてほしいのだということを認識します。

そして、iPhoneに”メールのアプリを起動せよ”という命令を出すわけです。

これはSiriの例ですが、あらゆるサービスに使われているチャットボットに共通するものになります。テキストデータを解析してその中の単語を一つ一つ調べ、ユーザーが何をしてほしいのかを読み取ってそれに応じた情報を返しているのです。

1−3. Pythonのチャットボットが使われているサービス

Pythonのチャットボットは、既に社会のあらゆる場所に溶け込んでいます。チャットボットという言葉がまだ広まっていないだけです。

例えば、消費者の問い合わせをチャットボットで受け付けていたり、IT系のヘルプデスク業務をチャットボットで代替したりなどがあります。

AIが特に強いのは、特定の傾向が多く見られる問題に適切な解答を返すことです。例えば上記のような問い合わせ業務の従事者は、よくあるQ&Aのページを見れば解決するような問い合わせをいくつも対応することになります。基本的にITに疎い人ほど、電話の方が安心するなどといった理由でいきなり電話をしてしまいがちですよね。

こういった特定の質問に対して適切な解答を返すのは、AIの得意分野です。問い合わせのフォームに入力された問い合わせの内容を解析し、よくある質問のパターンに該当するものがないかをチェックします。そして該当するものがあればパターン化された解答を返し、該当するものがなければ人間のオペレーターに繋ぎます。これだけでオペレーターの負担を大幅に減らすことができます。

また最近はこれとは違った形で、チャットボットを導入している企業もあります。その1つは会話型広告です。

例えばエンジニアの求人などで寄せられる問い合わせをチャットボットで受け付け、ユーザーの求める条件などをヒアリングしていきます。その条件に合った求人情報を返し、ユーザーが気に入ればエージェントが実際に求人を紹介するというサービスがあります。

ユーザーが求めているサービスをチャットによって特定し、それを契約に結びつける。こういった形の広告を導入する企業は増えつつあります。

この会話型広告をメインビジネスとしている株式会社ZEALSは、4.2億円の資金調達をしたことで話題になりました。またこのZEALSはサイバーエージェントが筆頭株主にもなっています。起業家や投資家も、チャットボットに目をつけ始めているということがわかります。

ここまで読んで少しでも参考になったという方はぜひTwitterでシェアお願いします!

Twitterのフォローもお願いします↓

https://twitter.com/benao_python

PythonのWeb開発スキルの転職市場における需要について書いたnoteはこちら!

この続きをみるには

この続き: 4,070文字 / 画像2枚

【Pythonコード】あなたにもSiriが作れる?! チャットボットを作成しよう

ベナオBlog

500円

この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
note.user.nickname || note.user.urlname

コロナで仕事減って大変なのでサポートもらえると本当に助かります!

めちゃくちゃ嬉しいです😊
51
Pythonプログラミング・IT転職関連のnoteを書いてます。 Twitterでエンジニア志望の相談を受ける一日無料メンターという活動をしてます。 フリーランスエンジニア・ライター #Python #Django Twitterアカウント変わったのでフォローお願いします

こちらでもピックアップされています

Pythonプログラミングnote
Pythonプログラミングnote
  • 10本

Pythonエンジニア志望向けのマガジンです。AIや機械学習、データ分析系の記事を中心に書いていきます。

コメントを投稿するには、 ログイン または 会員登録 をする必要があります。