最近なにかと話題の「人口知能(AI)」、テレビやネットで「人口知能」や「AI」の文字を見かけることが多くなりましたね。でも人口知能(AI)は、むずかしいので優秀な研究者にしか使うことができないと思っていませんか? 今やそんなことはありません、実はパソコンさえあれば誰でも無料で人口知能を試すことができるのです。そこで今回は、人口知能「Watson(ワトソン)」の性格分析APIの使い方をご紹介します。
Watson は、「IBM(アイビーエム)」という大手コンピューターメーカーが開発したサービスです。
この記事では冒頭から「人口知能」という言葉を使っていますが、IBM では Watson(ワトソン)を人口知能とは呼ばず、略称は同じ AI でもこれを「拡張知能」として人間の知識を広く高めるものと定義しています。
「人口知能が戦争をはじめる!」「人工知能が人間の仕事を奪う!」など、なにやら怖いイメージもある人口知能ですが、あくまで人間を助け便利にするための「道具」であることを忘れてはいけませんね。
Watson(ワトソン)は、IBMクラウドのサービスのひとつとして利用することができます。さっそく利用登録を……といきたいところですが、会社によっては外部サービスの利用を禁止している場合もありますので、まずは利用してもよいか会社に確認してみてください。ちなみにキュービストでは、クラウドサービスなど外部サービスを使う場合は、事前に申請を提出するルールがあります。
また、キュービストは ISMS というセキュリティ認証を取得しているため、外部サービスのセキュリティに問題がないか必ず確認しています。IBMクラウドなど大手のクラウドサービスのセキュリティレベルはかなり高いため、まず問題になることはありませんが念のため確認しておきましょう。IBMクラウドのセキュリティは以下のページで確認することができます。
前置きが長くなりましたが、まずIBMクラウドの利用登録を行います。IBMクラウドには「ライト・アカウント」という仕組みがあり、Watson(ワトソン)など IBMクラウドのサービスを一定の制限内であれば無料で使うことができます。クレジットカードの登録も不要です。(他のクラウドサービスにも無料枠はありますが、クレジットカードの登録が必要です)
ライト・アカウントの登録は以下のページから行えます。必須項目は、メールアドレス、氏名、電話番号だけなので2〜3分もあれば登録できると思います。
IBM Cloudライト・アカウント
「AI の Watson(ワトソン)!」と言われると、それだけでなんでもやってくれる万能なシステムだと思ってしまいますが、そうではありません。
Watson は、「会話をテキストにする機能」「テキストから感情を分析する機能」「文書を学習する機能」など、さまざまな機能(「サービス」とも呼びます)の集合体なのです。
Watson(ワトソン)のこれらの機能を組み合わせて便利なアプリを作ったり、業務システムに組み込んで入力作業を簡単にしたりすることができるのです。
今回は Watson の性格分析機能「Personality Insights」(パーソナリティ・インサイト)を使ってみたいと思います。Personality Insights にテキストを送ることで、そのテキストを書いた人の性格を分析することができます。
参考資料:Watson Personality Insights(性格分析)
※ 操作方法やスクリーンショットは 2017年12月時点のものです。バージョンアップなどにより変更されている場合もあります。なにとぞご了承ください。
IBMクラウドのコンソールにログインして、画面左上の「≡」ハンバーガーメニューの下の方にある「Watson」をクリックします。
「Watson サービスの作成」をクリックします。
「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 資料
送信したテキストファイルの内容と分析結果は、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」の値が大きいほど、その傾向が強くなります)
● 実際の分析結果(needs部分を抜粋)
ちょっとしたアイデアと Watson(ワトソン)の色々な機能を組み合わせれば、おもしろいアプリやウェブサービスが作られそうですね! ぜひ挑戦してみてはいかがでしょうか?
以前の記事『誰でも使える人工知能「Watson」の性格分析APIの使い方』では、人口知能「Watson(ワトソン)」の性格分析API をご紹介いたしました。これ以外にも Watson には、画像に写ったモノや情景を認識 … “人工知能「Watson」の画像認識API に Qちゃんを機械学習させてみた” の続きを読む
つい先日、漫画のセリフを OCRソフト(画像の文字をテキストデータにしてくれるソフト)で書き起こす機会があったのですが、なかなか上手くいきませんでした。 何かいい手はないかと考えたとき、ふと思いついたのが最近流行りの … “AIや機械学習モデルに漫画は読めるのか? 実際に試してみた!” の続きを読む