hopkins/laravel-aylien-wrapper

围绕 Aylien PHP SDK 的 Laravel 友好型包装器

dev-master / 0.1.x-dev 2017-04-05 01:12 UTC

This package is not auto-updated.

Last update: 2024-09-14 17:31:52 UTC


README

Aylien 是一个包含八个不同自然语言处理、信息检索和机器学习 API 的软件包,可以相对容易地适配到您的流程和应用中。坦白说,这个包装器并没有为其广泛、详尽的 PHP SDK 增加太多价值,因为其主要目的是为您的 Laravel 5 应用提供 Aylien:: 门面。

Latest Stable Version Total Downloads Latest Unstable Version License SensioLabsInsight

#安装

在您的 composer.json 中需要此包并更新 composer。运行以下两个命令之一

"hopkins/laravel-aylien-wrapper": "dev-master"

composer require hopkins/laravel-aylien-wrapper=dev-master

更新 composer 后,将 ServiceProvider 添加到 app/config/app.php 中的 providers 数组

'Hopkins\LaravelAylienWrapper\Providers\AylienServiceProvider',

并将门面添加到您的 facade 数组中

'Aylien'    => 'Hopkins\LaravelAylienWrapper\Facades\Aylien',

运行 artisan 命令将配置引入您的项目

php artisan vendor:publish

我将我的 API 密钥放在 .env 文件中。要使用此配置方式,可以将以下内容复制到您的 config/aylien.php

return [
    'app_id' => env('API_AYLIEN_APP_ID'),
    'app_key' => env('API_AYLIEN_APP_KEY')
];

#如何使用

Aylien 在其网站上提供了许多优秀的示例,以及 出色的文档。然而,如果不至少提供一个示例,我会觉得过意不去。readme 文件底部的示例使用了情感分析,但以下所有功能都可用于使用

Aylien::Sentiment();
Aylien::Extract();
Aylien::Classify();
Aylien::Concepts();
Aylien::Hashtags();
Aylien::Entities();
Aylien::Language();
Aylien::Related();
Aylien::Summarize();
Aylien::Microformats();
Aylien::UnsupervisedClassify();

假设您想要记录从聊天/电子邮件客户端/联系表单接收到的所有消息。在这种情况下,您将有一个 Message.php 模型,它将保存到您的数据库中。通过添加一个 public static function boot() 方法,我们可以利用 Laravel 的 模型事件 确保首先将消息保存到数据库中,然后调用 Aylien 的 API。以下示例使用情感分析

class Message extends BaseModel
{
    protected $guarded = ['id'];
    public static function boot()
    {
        parent::boot();
        Message::created(function(Message $message)
        {
            $aylienResponse = \Aylien::Sentiment(['text'=>$message->message]);
            $message->update([
                'polarity' => $aylienResponse->polarity,
                'polarity_confidence' => $aylienResponse->polarity_confidence,
                'subjectivity' => $aylienResponse->subjectivity,
                'subjectivity_confidence' => $aylienResponse->subjectivity_confidence
            ]);
        });
    }
}