使用PHP来运行Amazon Comprehend
首先
我在个人开发的网页应用中,为实现基于机器学习的自然语言处理功能,将php连接到了亚马逊的Comprehend服务。由于遇到了一些困难,特此记录下具体的实现方法。
目标受众
- amazon comprehendを外部からweb apiのように使いたい人
结论
答案
现在可以使用PHP进行情感分析了。
<?php
require 'vendor/autoload.php';
use Aws\Comprehend\ComprehendClient;
$client = new ComprehendClient([
'region' => 'ap-northeast-1',
'version' => 'latest'
]);
$result = $client->detectSentiment([
'LanguageCode' => 'ja', // REQUIRED
'Text' => '私はとても楽しいです', // REQUIRED
]);
echo $result;
发挥能力
Model Data
----------
Data can be retrieved from the model object using the get() method of the
model (e.g., `$result->get($key)`) or "accessing the result like an
associative array (e.g. `$result['key']`). You can also execute JMESPath
expressions on the result data using the search() method.
{
"Sentiment": "POSITIVE",
"SentimentScore": {
"Positive": 0.9998538494110107,
"Negative": 3.527790249790996e-5,
"Neutral": 8.529981278115883e-5,
"Mixed": 2.560075699875597e-5
},
"@metadata": {
"statusCode": 200,
"effectiveUri": "https:\/\/comprehend.ap-northeast-1.amazonaws.com",
"headers": {
"x-amzn-requestid": "cc775bfc-0b24-42d5-babb-020975931ba2",
"content-type": "application\/x-amz-json-1.1",
"content-length": "165",
"date": "Sat, 21 Oct 2023 09:50:58 GMT"
},
"transferStats": {
"http": [
[]
]
}
}
}
操作步骤
1. 创建AWS账号
我们从链接中创建。顺便说一下,由于AWS官方提供的日语翻译有时很混乱,所以在这种情况下我认为用英语显示,并在谷歌翻译上翻译会更容易阅读一些。
然后,我们创建IAM用户。这是一个权限受限的用户,平时我们会使用这个用户。
2. IAM身份中心的设置
按照下面的步骤1到6进行操作。
IAM身份中心是AWS的认证功能,通过在此处设置的用户可以从外部访问,并获得使用AWS各种服务的权限。
3. 安装 AWS PHP SDK。
如果您正在使用composer,您可以使用以下命令进行安装。
composer require aws/aws-sdk-php
其他安装方法请参见此处的说明。
4. 认证信息的设置
需要通过php文件获取为使用2设置的用户访问所需的认证信息。由于访问密钥等认证信息泄漏会带来严重问题,因此不应将其直接写在文件中。相反,我们可以创建config文件或credentials文件,并将其写入其中。创建位置因环境而异,但在Linux中通常为~/.aws/config和~/.aws/credentials。
配置
[profile dev]
sso_session = my-sso
sso_account_id = {access_id}
sso_role_name = PowerUserAccess
[sso-session my-sso]
sso_region = {region}
sso_start_url = {start_url}
sso_registration_scopes = sso:account:access
证书,资格,资历
[default]
aws_access_key_id={access_key_id}
aws_secret_access_key={access_key}
5. 確認操作
如果能够创建和执行一个名为example.php的文件,并且在结果输出正确的情况下,那么认证将成功。
结束
这次我使用了Amazon Comprehend进行自然语言处理,从一个PHP文件中进行操作。不过,Amazon Comprehend的使用次数过多会产生费用,所以在将其集成到公开的应用程序中时,请务必要注意。作为实现免费自然语言处理的方法,我也考虑了将Google Colaboratory用作API服务器,但是由于会定期中断会话,使用起来会非常麻烦,所以就放弃了。如果能添加定期启动会话的功能,应该是可行的。(虽然非常依赖技巧,但据说也有一种持续启动会话的方法)
参考文章
针对编程初学者的Qiita文章投稿模板