ホームページ >バックエンド開発 >PHPチュートリアル >Elasticsearch と PHP を使用してインテリジェントな質問応答システムを構築する方法

Elasticsearch と PHP を使用してインテリジェントな質問応答システムを構築する方法

WBOY
WBOYオリジナル
2023-07-07 15:55:371098ブラウズ

Elasticsearch と PHP を使用してインテリジェントな質問と回答システムを構築する方法

はじめに:
人工知能テクノロジーの急速な発展に伴い、インテリジェントな質問と回答システムは人々にとって徐々に重要な手段になりつつあります情報を得るために。 Elasticsearch は強力な検索エンジンとして、高速かつ効率的な全文検索および分析機能を備えており、インテリジェントな質問と回答システムの強力なサポートを提供できます。この記事では、Elasticsearch と PHP を使用してシンプルなインテリジェントな質問と回答システムを構築する方法を紹介し、対応するコード例を示します。

ステップ 1: インデックスを作成してデータをインポートする
まず、質問と回答を保存するために Elasticsearch にインデックスを作成する必要があります。インデックスの名前が「qna」で、「質問」と「回答」という 2 つのフィールドがあるとします。 Elasticsearch では、PHP Elasticsearch クライアントを使用してインデックスを作成し、データをインポートできます。例は次のとおりです:

<?php

require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();

$params = [
    'index' => 'qna',
    'body' => [
        'settings' => [
            'number_of_shards' => 1,
            'number_of_replicas' => 0,
        ],
        'mappings' => [
            'properties' => [
                'question' => [
                    'type' => 'text',
                ],
                'answer' => [
                    'type' => 'text',
                ],
            ],
        ],
    ],
];

$response = $client->indices()->create($params);

// 导入数据
$data = [
    ['question' => '什么是Elasticsearch?', 'answer' => 'Elasticsearch是一个开源的分布式搜索引擎。'],
    ['question' => '如何在PHP中使用Elasticsearch?', 'answer' => '可以使用PHP Elasticsearch客户端库来与Elasticsearch进行交互。'],
];

foreach ($data as $row) {
    $params = [
        'index' => 'qna',
        'body' => $row,
    ];

    $client->index($params);
}

ステップ 2: 検索 API を作成する
次に、実装する PHP コードを作成する必要があります質問検索機能。 Elasticsearch の検索 API を使用して全文検索を実装すると、検索結果が関連性に従って並べ替えられます。以下は、簡単な検索 API の例です。

<?php

require 'vendor/autoload.php';

$client = ElasticsearchClientBuilder::create()->build();

$params = [
    'index' => 'qna',
    'body' => [
        'query' => [
            'match' => [
                'question' => '什么是Elasticsearch?',
            ],
        ],
    ],
];

$response = $client->search($params);

// 输出搜索结果
foreach ($response['hits']['hits'] as $hit) {
    echo '问题:' . $hit['_source']['question'] . PHP_EOL;
    echo '答案:' . $hit['_source']['answer'] . PHP_EOL;
    echo PHP_EOL;
}

ステップ 3: フロントエンド インターフェイスとユーザー インタラクション
最後のステップは、フロントエンド インターフェイスとユーザー インタラクションを作成することです。 PHP を使用して、ユーザーが質問を入力し、検索結果を表示できるシンプルな Web インターフェイスを作成できます。以下は簡単な例です:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>智能问答系统</title>
</head>
<body>
    <h1>智能问答系统</h1>

    <form action="search.php" method="get">
        <label for="question">请输入您的问题:</label>
        <input type="text" name="question" id="question">
        <button type="submit">搜索</button>
    </form>

    <h2>搜索结果:</h2>

    <?php

    require 'vendor/autoload.php';

    $client = ElasticsearchClientBuilder::create()->build();

    $question = $_GET['question'] ?? '';

    $params = [
        'index' => 'qna',
        'body' => [
            'query' => [
                'match' => [
                    'question' => $question,
                ],
            ],
        ],
    ];

    $response = $client->search($params);

    foreach ($response['hits']['hits'] as $hit) {
        echo '<p>问题:' . $hit['_source']['question'] . '</p>';
        echo '<p>答案:' . $hit['_source']['answer'] . '</p>';
        echo '<hr>';
    }

    ?>

</body>
</html>

結論:
この記事では、Elasticsearch と PHP を使用して、シンプルでインテリジェントな質問と回答のシステムを構築する方法を簡単に紹介します。 Elasticsearch の全文検索および分析機能を使用すると、関連する質問を迅速に取得し、対応する回答を提供できます。最終的な効果は、ユーザーに情報を取得するための便利で効率的な方法を提供することです。

上記は、インテリジェントな質問と回答システムを構築する一般的なプロセスです。お役に立てば幸いです。

以上がElasticsearch と PHP を使用してインテリジェントな質問応答システムを構築する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。