adam-paterson/watson-tone-analyzer

IBM Watson Tone Analyzer

dev-code-quality-update 2017-10-06 14:22 UTC

README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

IBM Watson™ Tone Analyzer 服务使用语言分析来检测书面文本中的情感和语言色调。该服务可以在文档和句子级别分析色调。您可以使用该服务了解您的书面沟通是如何被感知的,然后改进沟通的语气。企业可以使用该服务来了解客户的沟通语气,并相应地回应每位客户,或理解和改进客户对话。

注意: Tone Analyzer 服务已禁用请求记录。服务不会记录或保留请求和响应的数据,无论是否设置了 X-Watson-Learning-Opt-Out 请求头。

安装

通过 Composer

$ composer require adam-paterson/watson-tone-analyzer php-http/guzzle6-adapter

注意: 此库使用名为 HTTPlug 的抽象层,将其从任何 HTTP 消息客户端解耦。要查看可用的适配器并了解更多信息,请访问: http://httplug.io/

使用方法

一般语气

/** @var $service IBM\Watson\ToneAnalyzer\Client */
$service = IBM\Watson\ToneAnalyzer\Client::create('username', 'password');

/** @var $analysis \IBM\Watson\ToneAnalyzer\Model\ToneAnalysis */
$analysis = $service->tone()->analyze('My fake plants died because I did not pretend to water them.', [
    'content_language' => 'en',
    'accept_language' => 'en',
    'sentences' => true
]);

/** @var $documentAnalysis \IBM\Watson\ToneAnalyzer\Model\DocumentAnalysis */
$documentAnalysis = $analysis->getDocumentAnalysis();

foreach ($documentAnalysis->getTones() as $tone) {
    /** @var $tone \IBM\Watson\ToneAnalyzer\Model\ToneScore */
    echo $tone->getName() . ': ' . $tone->getScore() . PHP_EOL;
}

// Sadness: 0.6165
// Analytical: 0.829888

$sentenceAnalysis = $analysis->getSentenceAnalysis();

foreach ($sentenceAnalysis as $sentence) {
    echo sprintf('#%d - %s: ', $sentence->getId(), $sentence->getText()) . PHP_EOL;
    foreach ($sentence->getTones() as $tone) {
        echo $tone->getName() . ': ' . $tone->getScore() . PHP_EOL;
    }
}

// #0 - Team, I know that times are tough!
// Analytical: 0.801827
// #1 - Product sales have been disappointing for the past three quarters.
// Sadness: 0.771241
// Analytical: 0.687768

参与语气

use IBM\Watson\ToneAnalyzer\Model\Utterance;

/** @var $service IBM\Watson\ToneAnalyzer\Client */
$service = IBM\Watson\ToneAnalyzer\Client::create('username', 'password');

$utterances = [
    Utterance::create([
        Utterance::KEY_TEXT => 'Hello, I\'m having a problem with your product.',
        Utterance::KEY_USER => 'customer'
    ]),
    Utterance::create([
        Utterance::KEY_TEXT => 'Sorry to hear that, let me know what\'s going on, please.',
        Utterance::KEY_USER => 'agent'
    ])
];

/** @var $analysis \IBM\Watson\ToneAnalyzer\Model\UtteranceAnalyses */
$analysis = $service->toneChat()->analyze($utterances);

/** @var $documentAnalysis \IBM\Watson\ToneAnalyzer\Model\UtteranceAnalyses */
$utteranceAnalysis = $analysis->getTones();

if (null !== $utteranceAnalysis->getWarning()) {
    echo $utterances->getWarning();
}

foreach ($utterances->getTones() as $tone) {
    /** @var $tone \IBM\Watson\ToneAnalyzer\Model\UtteranceAnalysis */
    echo sprintf('#%d - %s: ', $tone->getId(), $tone->getText()) . PHP_EOL;
    foreach ($tone->getTones() as $utteranceTone) {
        /** @var $utteranceTone \IBM\Watson\ToneAnalyzer\Model\ToneScore */
        echo $utteranceTone->getName() . ': ' . $utteranceTone->getScore() . PHP_EOL;
    }
}

// #0 - Hello, I'm having a problem with your product.
// Polite: 0.686361
// #1 - Sorry to hear that, let me know what's going on, please.
// Polite: 0.92724
// Sympathetic: 0.672499

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

测试

$ composer test

贡献

请参阅 CONTRIBUTINGCODE_OF_CONDUCT 以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过 hello[at]adampaterson.co.uk 邮箱联系,而不是使用问题跟踪器。

鸣谢

许可

MIT 许可证(MIT)。有关更多信息,请参阅 许可文件