Aiml-quick-guide
AIML-はじめに
AIMLは Artificial Intelligence Markup Language の略です。 AIMLは、AlicebotフリーソフトウェアコミュニティとDr. リチャード・S 1995年から2000年の間のウォレス。 AIMLは、A.L.I.C.Eに基づくチャットボックスアプリケーションであるAlicebotを作成またはカスタマイズするために使用されます。 (人工言語インターネットコンピュータエンティティ)フリーソフトウェア。
AIMLタグ
AIMLドキュメントで一般的に使用される重要なタグは次のとおりです。
S.No. | AIML Tag/Description |
---|---|
1 |
<aiml> AIMLドキュメントの開始と終了を定義します。 |
2 |
<category> Alicebotのナレッジベースの*ナレッジユニット*を定義します。 |
3 |
<pattern> ユーザーがAlicebotに入力できるものと一致するパターンを定義します。 |
4 |
<template> ユーザーの入力に対するAlicebotの応答を定義します。 |
これらの各タグについては、link:/aiml/aiml_basic_tags [AIML Basic tags]の章で説明します。
以下は、広く使用されている他のaimlタグの一部です。 次の章で各タグについて詳しく説明します。
S.No. | AIML Tag/Description |
---|---|
1 |
<star> <pattern>タグのワイルドカード***文字に一致させるために使用されます。 |
2 |
<srai> 他のカテゴリの呼び出し/照合に使用される多目的タグ。 |
3 |
<random> ランダムな応答を得るために <random> を使用しました。 |
4 |
<li> 複数の応答を表すために使用されます。 |
5 |
<set> AIML変数に値を設定するために使用されます。 |
6 |
<get> AIML変数に格納されている値を取得するために使用されます。 |
7 |
<that> コンテキストに基づいて応答するためにAIMLで使用されます。 |
8 |
<topic> AIMLでコンテキストを保存して、そのコンテキストに基づいて後の会話を行えるようにします。 |
9 |
<think> AIMLで使用され、ユーザーに通知せずに変数を保存します。 |
10 |
<condition> プログラミング言語のswitchステートメントに似ています。 ALICEが一致する入力に応答するのに役立ちます。 |
AIML語彙
AIMLボキャブラリーでは、単語、スペース、2つの特殊文字'および *' をワイルドカードとして使用します。 AIMLインタープリターは、を持つパターンよりも *' を持つパターンを優先します。 AIMLタグはXMLに準拠しており、パターンは大文字と小文字を区別しません。
例
以下は考慮すべき重要な点です-
- <aiml> タグは、AIMLドキュメントの開始を示します。
- <category> タグはナレッジユニットを定義します。
- <pattern> タグは、ユーザーが入力するパターンを定義します。
- <template> タグは、ユーザーがHello Aliceと入力した場合のユーザーへの応答を定義します。
結果
AIML-環境設定
このチュートリアルでは、AIMLで作業を開始して自動チャットソフトウェアを作成する開発環境を準備する方法について説明します。 プログラムABは、ALICE A.Iによって開発および保守されているAIML 2.0のリファレンス実装です。 基礎。 このチュートリアルでは、プログラムABライブラリをセットアップする前に、JDKをセットアップする方法も説明します-
ステップ1-Java Development Kit(JDK)をセットアップする
最新バージョンのSDKは、OracleのJavaサイト-https://www.oracle.com/technetwork/java/javase/downloads/indexl[Java SE Downloads]からダウンロードできます。 ダウンロードしたファイルにJDKをインストールする手順があります。指定された手順に従ってセットアップをインストールおよび構成します。 最後に、PATHおよびJAVA_HOME環境変数を設定して、javaおよびjavacを含むディレクトリ(通常はそれぞれjava_install_dir/binおよびjava_install_dir)を参照します。
Windowsを実行しており、JDKをC:\ jdk1.7.0_75にインストールしている場合、C:\ autoexec.batファイルに次の行を追加する必要があります。
または、Windows NT/2000/XPでは、マイコンピュータを右クリックして、[プロパティ]、[詳細設定]、[環境変数]の順に選択することもできます。 次に、PATH値を更新し、[OK]ボタンを押します。
Unix(Solaris、Linuxなど)では、SDKが/usr/local/jdk1.7.0_75にインストールされており、Cシェルを使用する場合、次を.cshrcファイルに追加します。
または、Borland JBuilder、Eclipse、IntelliJ IDEA、Sun ONE Studioなどの統合開発環境(IDE)を使用する場合は、単純なプログラムをコンパイルおよび実行して、IDEがJavaをインストールした場所を認識していることを確認します。 IDEの。
ステップ2-プログラムABのセットアップ
これで問題がなければ、プログラムABのセットアップに進むことができます。 以下は、ライブラリをマシンにダウンロードしてインストールする簡単な手順です。
- AIMLをWindowsにインストールするかUnixにインストールするかを選択してから、次のステップに進んで.zipファイルをダウンロードします
- [[1]] ABバイナリの最新バージョンをダウンロードします。 -ab-0.0.4.3.zip&can = 1&q = [program-ab-0.0.4.3.zip]リンク。
- このチュートリアルを書いている時点で、Windowsマシンに program-ab-0.0.4.3.zip をダウンロードしました。ダウンロードしたファイルを解凍すると、C:\ ab内のディレクトリ構造が次のようになります。
S.No. | Directory & Description |
---|---|
1 |
c:/ab/bots AIMLボットを格納します |
2 |
c:/ab/lib Javaライブラリーを保管します |
3 |
c:/ab/out Javaクラスファイルディレクトリ |
4 |
c:/ab/run.bat プログラムABを実行するためのバッチファイル |
この最後の手順が完了したら、次の章で説明する最初のAIMLの例に進む準備ができています。
AIML-最初のアプリケーション
ユーザーが Hello Alice と入力すると、* Hello User!*でユーザーに挨拶するだけの最初のボットの作成を始めましょう。
プロジェクト構造を作成する
link:/aiml/aiml_environment [AIML Environment Setup]の場合と同様に、program-abのコンテンツを C> ab に次のディレクトリ構造で抽出しました。
S.No. | Directory & Description |
---|---|
1 |
c:/ab/bots AIMLボットを格納します |
2 |
c:/ab/lib Javaライブラリーを保管します |
3 |
c:/ab/out Javaクラスファイルディレクトリ |
4 |
c:/ab/run.bat プログラムABを実行するためのバッチファイル |
ここで、 C> ab> bots 内にディレクトリテストを作成し、その中に次のディレクトリを作成します。
S.No. | Directory & Description |
---|---|
1 |
c:/ab/bots/test/aiml AIMLファイルを保存します |
2 |
c:/ab/bots/test/aimlif AIMLIFファイルを保存します |
3 |
c:/ab/bots/test/config 構成ファイルを保存します |
4 |
c:/ab/bots/test/sets AIMLセットを保存します |
5 |
c:/ab/bots/test/maps AIMLマップを格納します |
ソースファイルを作成する
test.aiml
test.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
AIML-基本タグ
このチュートリアルでは、AIMLの基本的なタグについて説明します。
- <aiml> -AIMLドキュメントの始まりと終わりを定義します。
- <category> -Alicebotのナレッジベースで*ナレッジユニット*を定義します。
- <パターン> -ユーザーがAlicebotに入力するものと一致するパターンを定義します。
- <template> -ユーザーの入力に対するAlicebotの応答を定義します。
ここでは、以下のAIMLファイルが参照として使用されています。
<aiml>タグ
<aiml>タグは、AIMLドキュメントの開始と終了を示します。 バージョンおよびエンコーディング属性の下に、バージョンおよびエンコーディング情報が含まれています。 version属性には、ALICE chatterbot Knowledge Base、KBで使用されるAIMLバージョンが格納されます。 たとえば、1.0.1バージョンを使用しました。 この属性はオプションです。
エンコード属性は、ドキュメントで使用される文字セットを提供します。 たとえば、UTF-8を使用しました。 必須要件として、<aiml>タグには少なくとも1つの<category>タグが含まれている必要があります。 各AIMLファイルに単一の<aiml>タグが含まれる複数のAIMLファイルを作成できます。 各AIMLファイルの目的は、categoryと呼ばれる少なくとも1つのナレッジユニットをALICE chatterbot KBに追加することです。
<category>タグ
<category>タグは、ALICE Botの基本的な知識単位です。 各カテゴリに含まれるもの-
アサーション、質問、感嘆符などになりうる文の形式でのユーザー入力。 ユーザー入力には、**や *_ などのワイルドカード文字を含めることができます。
Alicebotによって提示されるユーザー入力への応答。
オプションのコンテキスト。
ここで、ユーザーが Hello Alice と入力すると、ボットは Hello User として応答します。
<pattern>タグ
<pattern>タグは、ユーザーの入力を表します。 <category>タグ内の最初のタグである必要があります。 <pattern>タグには、ユーザー入力として複数の文に一致するワイルドカードを含めることができます。 たとえば、この例では、<pattern>にHELLO ALICEが含まれています。
AIMLは大文字と小文字を区別しません。 ユーザーがHello Alice、hello alice、HELLO ALICEなどを入力すると、すべての入力が有効になり、ボットはそれらをHELLO ALICEと照合します。
ここでは、テンプレートは「Hello User」であり、ユーザー入力に対するロボットの応答を表しています。
<template>タグ
<template>タグは、ユーザーに対するボットの応答を表します。 <category>タグ内の2番目のタグである必要があります。 この<template>タグは、データの保存、別のプログラムの呼び出し、条件付き回答の提供、または他のカテゴリへの委任を行うことができます。
ここでは、テンプレートは「Hello User」であり、ユーザー入力に対するロボットの応答を表しています。
AIML-<star>タグ
構文
次の例を考慮してください-
ユーザーが「マンゴーは果物です」と入力した場合。ボットは「マンゴーが果物ではないとき」と応答します。
例
star.aiml
star.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
<star index = "1"/>は、多くの場合<star/>として使用されます
AIML-<srai>タグ
構文
以下は、 srai に関連する一般的に使用される用語です-
- シンボリックリダクション
- 分割統治
- 同義語の解決
- キーワード検出
シンボリックリダクション
シンボリックリダクション手法は、パターンを単純化するために使用されます。 単純なパターンで複雑な文法パターンを減らすのに役立ちます。
たとえば、次の会話を考えます。
さて、 what if の質問は
ここでは、 <srai&gt タグが機能します。 ユーザーのパターンをテンプレートとして使用できます。
ステップ1:カテゴリーを作成する
ステップ2:<srai&gtタグを使用して汎用カテゴリを作成する
例
srai.aiml
star.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
分割統治
分割統治は、完全な返信を行う際にサブセンテンスを再利用するために使用されます。 複数のカテゴリの定義を減らすのに役立ちます。
たとえば、次の会話を検討してください。
ここで、ロボットは* GoodBye!を返信することが期待されています。ユーザーが文の先頭で *Bye と言ったときはいつでも。
ここで<srai&gtタグを機能させましょう。
ステップ1:カテゴリーを作成する
ステップ2:<srai&gtタグを使用して汎用カテゴリを作成する
例
srai.aiml
star.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
同義語の解決
同義語は、同様の意味を持つ単語です。 ボットは、同様の単語に対して同じ方法で返信する必要があります。
たとえば、次の会話を考えます。
ここで、ユーザーが Factory または Industry と言ったときはいつでも、ロボットは* Development Center!*と返信することが期待されています。
ここで動作するように <srai> タグを配置しましょう。
ステップ1:カテゴリーを作成する
ステップ2:<srai>タグを使用して汎用カテゴリを作成する
例
srai.aiml
star.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
キーワード検出
たとえば、次の会話を考えます。
ここで、ロボットは標準メッセージ*「学校は子供の生活の中で重要な機関です。」*に返信することが期待されます。*ユーザーが文に*学校*を持っているときはいつでも。
ここで動作するように <srai> タグを配置しましょう。 ここではワイルドカードを使用します。
ステップ1:カテゴリーを作成する
ステップ2:<srai&gtタグを使用して一般的なカテゴリを作成する
例
srai.aiml
star.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
AIML-<ランダム>タグ
構文
たとえば、次の会話を考えます。
例
random.aiml
random.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
ここで、応答はランダムな応答を考慮して変化する場合があります。
AIML-<set>、<get>タグ
構文
<set>タグは、変数に値を設定するために使用されます。
<get>タグは、変数から値を取得するために使用されます。
たとえば、次の会話を考えます。
例
setget.aiml
setget.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
AIML-<that>タグ
構文
たとえば、次の会話を考えます。
例
that.aimlを C> ab> bots> test> aiml 内に作成し、that.aiml.csvを C> ab> bots> test> aimlif ディレクトリ内に作成します。
that.aiml
that.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
AIML-<topic>タグ
構文
<set>タグを使用してトピックを定義する
<topic>タグを使用してカテゴリを定義します
たとえば、次の会話を考えます。
ここで、ボットは「映画」をトピックとして応答します。
例
topic.aiml
that.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
AIML-<think>タグ
構文
<think>タグを使用して値を保存する
たとえば、次の会話を考えます。
例
think.aiml
think.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-
AIML-<条件>タグ
構文
たとえば、次の会話を考えます。
ここでは、 happy をALICEの状態として保存しており、それが「I am happy!」として応答する方法です。
例
condition.aiml
condition.aiml.csv
プログラムを実行する
コマンドプロンプトを開きます。 C> ab> に移動し、次のコマンドを入力します-
結果を確認する
次の出力が表示されます-