誰でも使える人工知能「Watson」の性格分析APIの使い方

思わずシェアしたくなる話
2017.12.26

Qちゃんとワトソン

 最近なにかと話題の「人口知能(AI)」、テレビやネットで「人口知能」や「AI」の文字を見かけることが多くなりましたね。でも人口知能(AI)は、むずかしいので優秀な研究者にしか使うことができないと思っていませんか? 今やそんなことはありません、実はパソコンさえあれば誰でも無料で人口知能を試すことができるのです。そこで今回は、人口知能「Watson(ワトソン)」の性格分析APIの使い方をご紹介します。

Watson(ワトソン)は「人口知能」ではない!

 Watson は、「IBM(アイビーエム)」という大手コンピューターメーカーが開発したサービスです。

 この記事では冒頭から「人口知能」という言葉を使っていますが、IBM では Watson(ワトソン)を人口知能とは呼ばず、略称は同じ AI でもこれを「拡張知能」として人間の知識を広く高めるものと定義しています。

AIは拡張知能

参考資料:Watson とは? | IBM Watson

 「人口知能が戦争をはじめる!」「人工知能が人間の仕事を奪う!」など、なにやら怖いイメージもある人口知能ですが、あくまで人間を助け便利にするための「道具」であることを忘れてはいけませんね。

会社で Watson を使う場合はルールを確認しよう

 Watson(ワトソン)は、IBMクラウドのサービスのひとつとして利用することができます。さっそく利用登録を……といきたいところですが、会社によっては外部サービスの利用を禁止している場合もありますので、まずは利用してもよいか会社に確認してみてください。ちなみにキュービストでは、クラウドサービスなど外部サービスを使う場合は、事前に申請を提出するルールがあります。

外部サービス利用申請

 また、キュービストは ISMS というセキュリティ認証を取得しているため、外部サービスのセキュリティに問題がないか必ず確認しています。IBMクラウドなど大手のクラウドサービスのセキュリティレベルはかなり高いため、まず問題になることはありませんが念のため確認しておきましょう。IBMクラウドのセキュリティは以下のページで確認することができます。

参考資料:IBMクラウド・セキュリティ ガイドブック

IBMクラウドの利用登録

 前置きが長くなりましたが、まずIBMクラウドの利用登録を行います。IBMクラウドには「ライト・アカウント」という仕組みがあり、Watson(ワトソン)など IBMクラウドのサービスを一定の制限内であれば無料で使うことができます。クレジットカードの登録も不要です。(他のクラウドサービスにも無料枠はありますが、クレジットカードの登録が必要です)

 ライト・アカウントの登録は以下のページから行えます。必須項目は、メールアドレス、氏名、電話番号だけなので2〜3分もあれば登録できると思います。
IBM Cloudライト・アカウント

Watson(ワトソン)ができること

 「AI の Watson(ワトソン)!」と言われると、それだけでなんでもやってくれる万能なシステムだと思ってしまいますが、そうではありません。

 Watson は、「会話をテキストにする機能」「テキストから感情を分析する機能」「文書を学習する機能」など、さまざまな機能(「サービス」とも呼びます)の集合体なのです。

▽ Watson の機能一覧(ライト・アカウントで使えるもの)

Watson の機能一覧

 Watson(ワトソン)のこれらの機能を組み合わせて便利なアプリを作ったり、業務システムに組み込んで入力作業を簡単にしたりすることができるのです。

Watson「性格分析」機能の使い方

 今回は Watson の性格分析機能「Personality Insights」(パーソナリティ・インサイト)を使ってみたいと思います。Personality Insights にテキストを送ることで、そのテキストを書いた人の性格を分析することができます。

参考資料:Watson Personality Insights(性格分析)

※ 操作方法やスクリーンショットは 2017年12月時点のものです。バージョンアップなどにより変更されている場合もあります。なにとぞご了承ください。

Personality Insights サービスの作成

IBMクラウドのコンソールにログインして、画面左上の「≡」ハンバーガーメニューの下の方にある「Watson」をクリックします。
「Watson」をクリック

「Watson サービスの作成」をクリックします。
Watson サービスの作成」をクリック

「Personality Insights」(性格分析)をクリックします。
「Personality Insights」をクリック

デプロイする地域/ロケーションの選択で「米国南部」を選択し「作成」をクリックします。
「米国南部」を選択

以上で Personality Insights サービスが作成されました。下のような画面が表示されていると思います。
Personality Insights の開始画面

 上の画面が表示されていない場合は、以下の手順で Personality Insights の開始画面を表示させることができます。

1)画面左上の「≡」ハンバーガーメニュー から「Watson」をクリック
2)地域「米国南部」、Cloud Foundry 組織「<登録したメールアドレス>」を選択
3)表示された「Personality Insights」をクリック
4)左メニューの「開始」をクリック

サービス資格情報の作成

 続いて Personality Insights サービスを使うためのサービス資格情報(ユーザーとパスワード)を作成します。

左メニューの「サービス資格情報」をクリックして「新規資格情報」ボタンをクリックします。
「新規資格情報」をクリック

適当な「名前」(そのままでも構いません)を入力して「追加」をクリックします。
「追加」をクリック

「資格情報の表示」をクリックして、表示された「username」と「password」を控えておいてください。(当然ですが取扱いに注意です!)
資格情報を表示

分析するテキストの準備

 Personality Insights(性格分析)で分析するテキストは長いほど確度が高くなりますので(最低1200単語以上のテキストを推奨)このキュービストブログで比較的文字数が多い次の記事を分析することにしました。
攻略本の品質管理とは〜校正、校閲というお仕事〜

 記事のページから文章の部分だけテキストファイルにコピペして「sample.txt」(ファイル名はなんでも構いません)として保存します。文字エンコーディングは必ず「utf-8」にしてください。
分析用のテキストファイル

性格分析の実行

 以上で準備は整いました。いよいよ Watson(ワトソン)Personality Insights で性格分析を実行します。今回は curl コマンドを使って準備したテキストファイルを Personality Insights に送信していますが、HTTP POSTリクエストができればなんでもかまいません。

 分析するテキストが日本語の場合は、以下のようなコマンドオプションになります。1行に続けてオプションを指定できるのですが、あまりに長くなってしまうため「\」(バックスラッシュ)で区切って複数行にしています。

curl -X POST --user {username}:{password} \
--header "Content-Type: text/plain;charset=utf-8" \
--header "Content-Language: ja" \
--data-binary "@{path_to_file}sample.txt" \
"https://gateway.watsonplatform.net/personality-insights/api/v3/profile?version=2017-10-13" \
| python -mjson.tool

● オプションの説明
1行目 サービス資格情報の作成のところで控えた username と password を指定します。username が「sample」、password が「abcde」の場合は curl -X POST --user sample:abcde になります。
2行目 テキストファイルの文字エンコーディング「utf-8」を指定します。
3行目 テキストの言語「ja(日本語)」を指定します。
4行目 分析するテキストファイルのパスを「@」に続けて指定します。例えばテキストファイルが /home/foo/sample.txt にあるとしたら、--data-binary "@/home/foo/sample.txt" になります。
5行目 Personality Insights のURLです。ここにテキストファイルを送信します。
6行目 分析結果を見やすく表示するためのコマンドです。

参考資料:Personality Insights | IBM Cloud 資料

パソコンにコマンドを入力するQちゃん

 送信したテキストファイルの内容と分析結果は、Watson のサービス改善のために記録されます。(この記録が公開されることはありません)もし、テキストの内容に機密情報や要配慮個人情報(病歴・犯罪の経歴など)は含まれる場合は、以下のオプションを追加することで記録しないように指定することもできます。

--header "X-Watson-Learning-Opt-Out: true"

参考資料:Controlling request logging for Watson services

性格分析の結果

 上のコマンドを実行すると、次のような性格分析の結果が返ってきます

・「欲求(needs)」
・「価値観(values)」

 ビッグファイブと呼ばれる性格を構成する5つの要素
・「経験への開放性(Openness)」
・「誠実性(Conscientiousness)」
・「外向性(Extraversion)」
・「協調性(Agreeableness)」
・「情緒不安定性(Emotional range)」

 実際の分析結果の「欲求(needs)」について見てみると、このテキストを書いた人は、好奇心が強く理想を求める性格と Watson(ワトソン)は分析したようです。(「percentile」の値が大きいほど、その傾向が強くなります)

分析に成功したQちゃん

● 実際の分析結果(needs部分を抜粋)

{
“needs”: [
{
“category”: “needs”,
“name”: “Challenge”,(挑戦)
“percentile”: 0.13373473159374444,
“significant”: true,
“trait_id”: “need_challenge”
},
{
“category”: “needs”,
“name”: “Closeness”,(親密)
“percentile”: 0.001662175550831868,
“significant”: true,
“trait_id”: “need_closeness”
},
{
“category”: “needs”,
“name”: “Curiosity”,(好奇心)
“percentile”: 0.8932091199177552,
“significant”: true,
“trait_id”: “need_curiosity”
},
{
“category”: “needs”,
“name”: “Excitement”,(興奮)
“percentile”: 0.08523244206942276,
“significant”: true,
“trait_id”: “need_excitement”
},
{
“category”: “needs”,
“name”: “Harmony”,(調和)
“percentile”: 0.0037057774829314938,
“significant”: true,
“trait_id”: “need_harmony”
},
{
“category”: “needs”,
“name”: “Ideal”,(理想)
“percentile”: 0.7497866632414697,
“significant”: true,
“trait_id”: “need_ideal”
},
{
“category”: “needs”,
“name”: “Liberty”,(自由)
“percentile”: 0.2603044279833192,
“significant”: true,
“trait_id”: “need_liberty”
},
{
“category”: “needs”,
“name”: “Love”,(愛)
“percentile”: 0.012206326123918143,
“significant”: true,
“trait_id”: “need_love”
},
{
“category”: “needs”,
“name”: “Practicality”,(実用主義)
“percentile”: 0.3506861373005856,
“significant”: true,
“trait_id”: “need_practicality”
},
{
“category”: “needs”,
“name”: “Self-expression”,(自己表現)
“percentile”: 0.1596036469327322,
“significant”: true,
“trait_id”: “need_self_expression”
},
{
“category”: “needs”,
“name”: “Stability”,(安定)
“percentile”: 0.42108547830257526,
“significant”: true,
“trait_id”: “need_stability”
},
{
“category”: “needs”,
“name”: “Structure”,(組織化)
“percentile”: 0.46846222314912384,
“significant”: true,
“trait_id”: “need_structure”
}
],

おしまいに

 ちょっとしたアイデアと Watson(ワトソン)の色々な機能を組み合わせれば、おもしろいアプリやウェブサービスが作られそうですね! ぜひ挑戦してみてはいかがでしょうか?

関連記事

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です