人工知能の時代に、チャットするインテリジェントロボットを Python で作成しました。とても優れています。

人工知能の時代に、チャットするインテリジェントロボットを Python で作成しました。とても優れています。

[[253842]]

人工知能はすでにトレンドです。スマートホテル、スマートインターネットカフェ、自動運転車などが実現され、すぐに私たちの生活に普及するでしょう。同様に、インテリジェント時代の到来は、多くの人が失業に直面することを意味します。私たちは、時代に見捨てられ、排除されることのないよう、時代の発展に遅れを取らないようにしなければなりません。

人工知能に最適な言語としてPython

それは私たちの学習の究極の目標です。かつて誰かがこう言いました。

未来の社会では、Python を知らない人は新たな「文盲」に分類されるでしょう。 また、Python は、プログラミング言語の基礎をまったく学んでいない人にとっても最適です。それで私は Python を学ぶ旅を始めました!

正しい手順、正しい方法を見つけて、一生懸命勉強すれば大丈夫です!信じてください、すぐに習得できますよ!

ここでは、エディターは、学習したい初心者のための非常に適切な学習教材を用意しました。もちろん、今日のソースコード

さて、今日はインテリジェントなロボットの書き方を紹介します。

1. ジェネレータオブジェクトの分析

簡単な例を見てみましょう。ジェネレータ関数を作成し、ジェネレータ オブジェクトを生成します。

人工知能の時代に、チャットするインテリジェントロボットを Python で作成しました。とても優れています。

G がジェネレーター オブジェクトであることを示します。その内部にあるものを分析してみましょう。

dir(G) を印刷する

非常に特殊な関数が 4 つあることに注意してください: close()、next()、send()、throw()、next()。これらについては前の 2 つの記事ですでに説明しているので、ここでは説明しません。今日は、send()、throw()、close() 関数に焦点を当てます。

2. コルーチンとは何か

Python のコルーチンは、スレッドに似ています。コルーチンは、複数の関数を実行し、同時に実行されているように見せることができる、ユーザーレベルの軽量スレッドまたはマイクロスレッドと考えることができます。ただし、メモリをあまり消費しない、オーバーヘッドが低い、スレッドの安全性を考慮する必要がないなど、スレッドよりも優れた点がいくつかあります。(スレッドとは何かについては、次の記事で説明します)

1.send()関数

send() は、パラメータを渡してジェネレータとやりとりするために使用されます。プログラムがreceive=yieldまで実行されると、一時停止され、ジェネレータがsendメソッドを呼び出すのを待ちます。このとき、send関数は外部から呼び出され、データ変数を送信し、データ変数はreceivedに渡されます。

コード例:

a) echo 関数には無限ループがあり、その中にはキーとなるコード行のreceive=yieldが含まれています。これは、外部から送信される send 関数のエントリ ポイントです。

b). 外部関数は最初にジェネレータオブジェクトを生成する必要があります。つまり、Echo = echo() です。

c) 次に重要なステップは next(Echo) です。ジェネレーターを最初の yield 式に進めるには、 next 関数を 1 回呼び出す必要があります。

d) 次に、yield 操作と send 操作を組み合わせて外部からのデータ入力を取得し、一連のプロセスを使用してそれを処理します。

2.throw()関数

Throw は主に例外をジェネレータに送信し、システム定義の例外 (もちろんカスタム例外も含む) を終了できます。

コード例:

a). ジェネレータオブジェクトGを作成する

b) next(G) を実行し、結果を出力します。最初の yield でキャッシュされた結果 'First' を取得し、yield 'Second' の前に留まります。

c). 例外クラス ValueError をスローします (ValueError は文字列ではなくクラスであることに注意してください)。ジェネレーターが例外を受け取ると、yield 'Second' を直接スキップして except 部分に入り、'Catch the TypeError' と出力します。

d). next(G) を実行し、結果を出力します。while の先頭に戻り、最初の yield 'Frist' を消費し、 yield 'Second' を実行します。

3.close()関数

close はジェネレータを停止するために使用されます。停止後に next が呼び出されると、StopIteration エラーがトリガーされます。

コード例:

ジェネレーター オブジェクト Echo が close() を呼び出すと、send('123') を呼び出すと例外 StopIteration がスローされ、これをキャッチします。

3. 実用化 - ミニチャットボット

たくさん話した後で、少し目が回りませんか?

ジェネレータはPythonで最も複雑な概念の1つです。学生の中には、他にもジェネレータがあるかどうか尋ねた人もいました(はい、デコレータです)。

コルーチンを使って小さなチャットボットを書いてみましょう~~

1). バックグラウンドでスレッド機能として考えられるチャットボットジェネレーター機能を作成する

2) フロントデスクは継続的にユーザー入力を取得し、コルーチンを使用してバックエンドに送信して処理します。

ランニングの効果を見てみましょう

<<:  【WOT2018】4人の重鎮専門家が企業ビジネスにおけるNLPの詳細な応用を分析

>>:  人工知能を活用した新しい小売無人店舗の発展展望は?

推薦する

ChatGPT が個人情報を含むトレーニングデータを吐き出す: DeepMind が論争を巻き起こす大きなバグを発見

ChatGPT がおかしくなるまで 1 つのことを実行するように要求し続けると、どうなるでしょうか?...

DeepMind、囲碁、チェス、ポーカーをプレイするための汎用学習アルゴリズムSoGを発表

2016年3月、ロボットと世界チャンピオンでプロ棋士のイ・セドル九段による人機囲碁対決が世界中から大...

ディープラーニングがインターネットにパーソナライゼーションをもたらす仕組み

[[195601]]ディープラーニングは機械学習のサブセットであり、さまざまな方法を使用して人工知能...

...

ResearchAndMarkets: 世界の AI ソリューション市場は 2027 年に 2,820 億ドルに達する見込み

ResearchAndMarkets が発表した最新のレポートによると、2027 年までに世界の人...

米空軍がAI技術を活用して「戦闘効率」を向上させる方法を明らかにする

データの規模を拡大し、関連するリテラシーを向上させることで、米空軍のさまざまな部門と人員は、意思決定...

アルゴリズムの旅について話しましょう:スタック

[[379190]]スタックの本質は、特殊なデータ構造です。その特殊な構造は、データのエントリと終了...

フロントエンド人工知能: 機械学習による関数方程式の導出 - プラチナ III

[[259734]] tensorflow.jsとはTensorflow.js は、ブラウザーと ...

危険なAIアルゴリズムを識別し、倫理原則に従ったビッグデータモデルを作成する方法

人工知能がもたらす脅威について議論するとき、スカイネット、マトリックス、ロボットによる終末の世界とい...

光学行列乗算は人工知能をどう変えるのか

現在の AI の世界は電力を大量に消費し、計算能力が制限されています。モデル開発の軌跡は急速でしたが...

工業情報化部:電話ネットワークアクセスの物理チャネルに肖像マッチング技術を導入

今年12月1日より、物理チャネルでは顔認識技術対策を全面的に導入し、電話ネットワークへのアクセスプロ...

...

Googleの最新の「効率的なトランスフォーマー」では、トランスフォーマーの効率を向上させる方法を説明しています

トランスフォーマー モデルは現在、言語、視覚、強化学習などの分野での有効性から注目を集めています。た...

初のAI絵画がオークションで予想を大きく上回る43万2000ドルで落札

英国放送協会が10月25日に報じたところによると、人工知能によって制作された芸術作品がオークションで...