4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【恋愛 x AI】LINEやメールの返信から"恋に発展するか"判定する方法

Last updated at Posted at 2020-02-26

はじめに

ITの導入が遅れている分野の一つである"恋愛"に最新技術を導入する。

自己紹介

コンピュータ史を勉強したりする理論派だが、コードを書いたことがないただのポンコツ素人である。

やりたいこと

意中の相手とのメッセージのやり取りの中で「向こうも好意があるのではないか?」「いや、勘違いかもしれない」「客観的な意見が欲しい」と感じたことはないだろうか。
メッセージの内容や、返信ペース、時系列などの傾向から告白に適切なタイミングを科学的に判定し、"恋愛"を成就させ少子化対策の一つとしたい。

 ポイント1:メッセージの感情分析をする
 ポイント2:返信の間隔や、メッセージ毎の感情分析の変化を時系列を考慮して分析する

ずっと前から構想はあったものの素人の私には独力で実現できず、自然言語処理API COTOHAの存在をしったため挑戦するものである。。

【Qiita x COTOHA APIプレゼント企画】に参加して、ちょっとでも傷を残したい。

#実現に向けた予定
勉強しながら少しずつ書いていきます。誰か助けてください。

 1回目:COTOHA APIを叩いて感情分析をする
 2回目:感情分析結果をグラフにする
 3回目:返信のペース、時系列を考慮した感情分析をする
 4回目:まとめ

1回目:COTOHA APIを叩いて感情分析をする

COTOHA APIを叩いて感情分析します。

for Developers 無料登録をする

COTOHAには、Developers版とEnterprise版があります。辞書の単語数や1日に使える回数に違いはありますが、無料のDevelopers版を登録します。

リンク先で登録すれば5分程度で登録が完了します。
躓くところはありません。

for Developers 無料登録

チュートリアル

サンプルを動かしてみます。

アクセストークンの取得

以下のコマンドの[clientid]と[client secret]と[Access Token Publish URL]をアカウントページで表示されるものに置き換えて実行します。

$ curl -X POST -H "Content-Type:application/json" -d '{
  "grantType": "client_credentials",
  "clientId": "[clientid]",
  "clientSecret": "[clientsecret]"
}' [Access Token Publish URL
]

成功すると下記のようにアクセストークンを取得できます。

{
  "access_token": "アクセストークン",
  "token_type": "bearer",
  "expires_in": "残り有効期限(秒)" ,
  "scope": "" ,
  "issued_at": "トークン発行日時(エポックタイムからの経過ミリ秒数)"
}

感情分析APIの呼び出し

以下のコマンドの[Access Token]は上記コマンドで取得した"アクセストークン"に置き換えてください。

「最近は忙しいのでまたこちらから連絡します。すみません。」というなんとも言えないメッセージをセットします。

curl -X POST -H "Content-Type:application/json;charset=UTF-8" -H "Authorization:Bearer [Access Token]" -d '{"sentence":"最近は忙しいのでまたこちらから連絡します。すみません。"}' "https://api.ce-cotoha.com/api/dev/nlp/v1/sentiment"

レスポンス

下記のようにレスポンスがありました。

{"result":{
 "sentiment":"Negative",
 "score":0.4378570388741931,
 "emotional_phrase":[
   {"form":"すみません",
    "emotion":"悲しい"},
   {"form":"忙しい",
    "emotion":"N"}]},
 "status":0,
 "message":"OK"}
レスポンスの見方

下記の要領で今回のメッセージ「最近は忙しいのでまたこちらから連絡します。すみません。」は、"悲しい"、"N"といったネガティブな返信であることが分析されました。

キー名 データ型 説明
result object 感情分析結果オブジェクト※1
status integer 0:OK, >0:エラー
message string エラーメッセージ
感情分析結果オブジェクト※1
キー名 データ型 説明
sentiment string 感情分析結果。Positive/Negative/Neutralのいずれか
score float センチメントスコア
emotional_phrase list 感情フレーズオブジェクトの配列※2
感情フレーズオブジェクトの配列※2
キー名 データ型 説明
form string 表記
emotion float センチメントスコア
emotional_phrase list 表記に対応する感情語※3
表記に対応する感情語※3
感情分析ラベル
喜ぶ
怒る
悲しい
不安
恥ずかしい
好ましい
興奮
安心
驚く
切ない
願望
P*1
N*2
PN*3

#おわりに
今回はCOTOHA APIを叩いて結果を得るところまで進めました。
援護、ヘルプお待ちしてますw

#今後の予定

 1回目:COTOHA APIを叩いて感情分析をする ← 今回
 2回目:感情分析結果をグラフにする
 3回目:返信のペース、時系列を考慮した感情分析をする
 4回目:まとめ

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?