【Qiita x COTOHA APIプレゼント企画】COTOHA APIで、テキスト解析をしてみよう!
なーんてものをやっていたので、せっかくだから参加してみたよ!ヾ(´∀`)ノ
名前は知ってたけど利用したことはなかったので、良い機会だから勉強します!
そしてプレゼントが欲しいです。
環境は GoogleAppsScripts です!
どうぞよろしくお願いいたします。('ω')
COTOHA API Portal for Developers にアカウント登録
まずは何はともあれ、登録登録!(*'▽')
COTOHA API Portal
無料登録枠でやりまーす。
制限はありますが、最初だし使える機能を使って遊びます。
スタートガイドがわかりやすいですねー。こゆとこ、大事だと思います。
では、登録していきましょー!ヾ(´∀`)ノ
メールアドレスを送信したら URL が送られてきて、名前とか使い道とか(割とテキトーに)書いたらすんなり登録できました。
難しいことは何もありませんでしたよー。
登録が楽チンって、ハードル下がっていいですよね!( ゚Д゚)
さっそく Client ID と Client secret が発行されましたよ!
これを使って COTOHA API で遊んじゃいましょー!ヾ(´∀`)ノ
アクセストークンの取得
スタートガイドの手順4に書いてある通りに設定します。
cURL での例があるので、これを GoogleAppsScripts に書き換えます。
function getToken() {
const uri = 'https://api.ce-cotoha.com/v1/oauth/accesstokens';
const json = {
"grantType" : "client_credentials",
"clientId": "",
"clientSecret": ""
};
const options = {
"method": "post",
"headers": { "Content-type": "application/json" },
"payload": JSON.stringify(json)
};
Logger.log(UrlFetchApp.fetch(uri, options));
}
簡単かんたん!(*'▽')
さーて、ログからアクセストークン取り出そうっと。
[20-02-18 16:13:51:501 JST]
{
"access_token": "IkV8Fp369UI8MMOPIvS9GQzUuw5v",
"token_type": "bearer",
"expires_in": "86399" ,
"scope": "" ,
"issued_at": "1582010031433"
}
いえーい( ゚Д゚)
だーいせーいこー!
ちなみにこのときにした、とんでもない失敗の話は最後に語ります( ノД`)
COTOHA API を呼び出す(構文解析 API)
アクセストークンが手に入ったので COTOHA API を使ってみたいと思います!
スタートガイドにもありますし、構文解析 API を使ってみましょうかね。
function test() {
const uri = 'https://api.ce-cotoha.com/api/dev/' + "nlp/v1/parse";
const json = {
"sentence":"犬は歩く。",
"type": "default"
};
const options = {
"method": "post",
"headers": {
"Content-type": "application/json",
"Authorization": getToken()
},
"payload": JSON.stringify(json)
};
const res = JSON.parse(UrlFetchApp.fetch(uri, options));
Logger.log(res);
}
さー、結果を見てみよー。
{
result=[{
tokens=[{
features=[],
form=犬,
pos=名詞,
dependency_labels=[{
token_id=1,
label=case
}],
lemma=犬,
attributes={},
id=0,
kana=イヌ
}, {
features=[],
form=は,
pos=連用助詞,
lemma=は,
attributes={},
id=1,
kana=ハ
}],
chunk_info={
head=1,
chunk_func=1,
links=[],
id=0,
dep=D,
chunk_head=0
}
}, {
tokens=[{
features=[K],
form=歩,
pos=動詞語幹,
dependency_labels=[{
token_id=0,
label=nsubj
}, {
token_id=3,
label=aux
}, {
token_id=4,
label=punct
}],
lemma=歩く,
attributes={},
id=2,
kana=アル
}, {
features=[終止],
form=く,
pos=動詞接尾辞,
lemma=く,
attributes={},
id=3,
kana=ク
}, {
features=[],
form=。,
pos=句点,
lemma=。,
attributes={},
id=4,
kana=
}],
chunk_info={
head=-1,
predicate=[],
chunk_func=1,
links=[{
link=0,
label=agent
}],
id=1,
dep=O,
chunk_head=0
}
}],
message=,
status=0
}
んな!?
めっちゃ細かい!
連用助詞とか動詞接尾辞とか、普段使わない言葉が満載。
こんな細かく分析してくれるなら、特定の言葉を抜き出したり置き換えたりするのも簡単ね。
みんなが原始人になりたがるわけだ。ぱはー( ゚Д゚)
COTOHA API を呼び出す(感情解析 API)
感情分析 API!これ、面白そうだなーって思ってたんですよね!
どんな文章を解析してもらおうかしら( ^ω^)
function test2() {
const uri = 'https://api.ce-cotoha.com/api/dev/' + "nlp/v1/sentiment";
const json = {
"sentence":"私は今、レバノンにて人生の春を謳歌している"
};
const options = {
"method": "post",
"headers": {
"Content-type": "application/json",
"Authorization": getToken()
},
"payload": JSON.stringify(json)
};
const res = JSON.parse(UrlFetchApp.fetch(uri, options));
Logger.log(res);
}
{
result={
sentiment=Positive,
score=0.08938453252087439,
emotional_phrase=[{
emotion=安心,喜ぶ,
form=謳歌
}]
},
message=OK,
status=0
}
ポジティブですね!
score は 100 分率かな? 8点ってこと??
ギリギリポジティブってことで、謳歌ってほどではない、と。なるほど( ゚Д゚)
ちょっと文章を変えてみますか。
"sentence"
のところだけ変えれば OK です。
function test2() {
const uri = 'https://api.ce-cotoha.com/api/dev/' + "nlp/v1/sentiment";
const json = {
"sentence":"むしゃくしゃしてやった。今は後悔している。"
};
/// 後省略
{
result={
sentiment=Negative,
score=0.5424414618903893,
emotional_phrase=[{
emotion=N,
form=後悔している
}, {
emotion=怒る,
form=むしゃくしゃ
}]
},
message=OK,
status=0
}
めっちゃネガティブですね!
score が 54点になってます。
score が高いほどネガティブなのかな?
それとも、ネガティブ選手権の中での得点ですかね?
点数で出してくれるのは面白いですねー。
ちょっと調べてみたら score を分析して入試の文章題も解けるとか。
COTOHA さん( ゚Д゚)パネェ
とても恥ずかしいとんでもない失敗の話
さてさて、さっき言ってた失敗ですが・・・。
アクセストークンの取得のときにですね、何だかよくわからないけどこんな失敗をしました。
[20-02-18 16:05:22:067 JST]
{
"access_token": "",
"token_type": "bearer",
"expires_in": "" ,
"scope": "" ,
"issued_at": ""
}
・・・ちょ、待っ、え?どゆこと????( ゚Д゚)
空っぽなんですけどーーーーーーー!!!
ちょーびっくりしました。
「COTOHA」「アクセストークン」「空」で検索しました。
何も Hit しませんでした。
神は私を見捨てたもうたか。。。
こういうときは落ち着いて、もう一度最初から確認するんだ!
悪いのはプログラムじゃない。たいてい、自分なのだから。。。
なんだよ、grant_type
って!(;´Д`)
なぜこうなったのか、本当にわかりません。
手入力したんだろうなー。コピペしろよ!( ゚Д゚)
猛省します。コピペ大事。
おわりに
ここまでお付き合いいただきありがとうございました。
COTOHA 使って何しましょうねー。
みなさん、原始人に変身したり、筋肉空間を形成したりと、遊び放題ですよね!
私も何か面白いこと、しようと思います!
ではまた!(^^)/
参考にさせていただきましたm(_ _)m
COTOHA API Portal
COTOHA APIを使って人の気持ちを考える
【Qiita x COTOHA APIプレゼント企画】COTOHA APIで、テキスト解析をしてみよう!