Quantcast
Channel: Node.jsタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 8906

paralleldots APIをnode経由で使用してみた (感情分析編)

$
0
0

はじめに

paralleldots AI APIというテキストから感情を分析するAPIがあるので、Nodeをプロキシとしてして利用し、このAPIを使ってみました。

paralleldots

環境

・ node version : v12.18.3
・ npm version : 6.14.6

URIと機能

PathHTTPメソッド機能
/api/v1/emotionPOST入力テキストの全体的な感情と各感情ラベル(Happy、Sad、Angry、Excited、Bored、Fear)の信頼スコアを含むjson応答を返します。

使用したparalleldots AI API

paralleldots AI APIとは??
開発者向けの包括的なドキュメント分類およびAPIのセットです。10億を超えるドキュメントでトレーニングされており、感情分析や感情検出などを提供しているそう。

今回は、paralleldots AI APIの[/v4/emotion]こちらを使用していきます。

設定できるパラメータ

名前詳細RequiredType
text分析したい文章を入力します。Yesstring/array
api_keyApi keyYesstring
lang_code言語コードYesstring

・ ただ、今回は、nodeでプロキシしているので、プロキシサーバ側で[api_key]及び[lang_code]は設定しています。

構成

package.json
{"name":"node_poc","version":"1.0.0","description":"paralleldots AI API","main":"app.js","scripts":{"test":"echo \"Error: no test specified\"&& exit 1"},"author":"","license":"ISC","dependencies":{"axios":"^0.20.0","express":"^4.17.1"}}
app.js
constexpress=require("express");constapp=express();constaxios=require('axios');constserver=app.listen(9000,function(){console.log("Node.js is listening to PORT:"+server.address().port);});app.post("/api/v1/emotion",function(req,res,next){letparams=newURLSearchParams();params.append("api_key",'××××××××××××××××××××××××××××');params.append("lang_code",'en');params.append("text",req.query.text);try{axios.post('https://apis.paralleldots.com/v4/emotion',params).then((response)=>{res.send(response.data)})}catch(error){console.error(error);}});

Response

今回は、requestを日本語で行おうと思ったのですが、[lang_code]を英語以外を使用したい場合は、無料枠では使用できない為、仕方なく英語で行いました。

textには、
Be careful about reading health books. You may die of a misprint.
日本語訳にすると、[健康系の本を読むときは注意しなさい。ミスプリントのせいであなたは死ぬかもしれない。]
という意味です。笑

Requestは、Postmanを使用しました。(curlより見やすい為)

スクリーンショット 2020-10-13 19.30.55.png

・ 実際のResponse

{
    "emotion": {
        "Happy": 0.0872024649,
        "Angry": 0.2344884125,
        "Bored": 0.0416403769,
        "Fear": 0.3095755387,
        "Sad": 0.1825278824,
        "Excited": 0.1445653247
    }
}

結果

chart.png

やはり、死ぬかもしれないという恐怖を入れ込んだ文章を送ったため、Fearが一番結果の数値として高いことが分かります。
精度的にどうなのかは、個人の感性に依存しそうですが、、

ではまた。。

参照

paralleldotsのドキュメント


Viewing all articles
Browse latest Browse all 8906

Trending Articles