目次


画像からテキストを抽出して感情を分析する

Comments

このシリーズの第 1 回で、Bluemix 上に Python Web アプリを作成し、Twitter からライブ・ツイートを取得するようにしました。また、ツイートのテキストを JSON ファイルとテキスト・ファイルに保存するにはどのようにするのかも説明しました。第 2 回では、アプリに Watson Tone Analyzer サービスを追加して、保存したテキスト・ファイルをアプリに取り込み、収集したツイートにまつわる感情を評価できるようにしました。第 3 回では、ツイートから画像を抽出して分類しました。シリーズ最終回となる今回のチュートリアルでは、画像からテキストを抽出し、そのテキストをツイートのテキストに結合した複合テキストを分析して感情と洞察を引き出します。

アプリケーションを作成するために必要なもの

このチュートリアル・シリーズの第 1 回から第 3 回で作成したコードと生成した出力ファイル

  • 実行中アプリケーションの URL
  • DevOps Services からコードを取得するための URL

アプリを実行するコードを入手する

1

画像からテキストを抽出する

このチュートリアル・シリーズの第 3 回で利用した Watson Visual Recognition サービスでは、プログラムによって、第 1 回と第 2 回で作成したデータ・セットをこのサービスに取り込み、該当するカテゴリーからなる JSON オブジェクトを取得しました。このチュートリアル内でも同じ Visual Recognition サービスを利用しますが、今回このサービスを利用する目的は、画像に埋め込まれたテキストを読み取ることです。

Visual Recognition サービスでは 1 日に無料で実行できる API 呼び出し回数に制限が設けられていることを思い出してください。制限回数を超える前に、このサービスのテキスト分析機能を十分に理解できるよう、まずは個々の写真に対してサービスを利用します。テキスト分析機能を使い慣れてきたら、プログラムによって大きなデータ・セットを使用してテキストを分析するための知識を深めていってください。個々の写真から洞察を引き出すために、Watson サービスのデモ・サイトを使用します。

  1. Visual Recognition サービスのデモに移動します。
  2. 「Or paste an image URL (または、画像の URL を貼り付けてください)」と示されている入力ボックスに、写真をアップロードします。適切な写真が手元にない場合は、「Downloadable resources (ダウンロード可能なリソース)」セクションから tutorial_Watson_sentiment_part4_images.zip ファイルを入手して、そこに含まれている 2 つのサンプル画像のいずれかを使用することもできます。
  3. 分析が完了するまで待機します。完了すると、画像の分類 (第 3 回を参照) と、画像から抽出された埋め込みテキストという 2 種類の結果が表示されます。 UK における家に関する上位 10 件の質問を示す画面のスクリーン・キャプチャー
    UK における家に関する上位 10 件の質問を示す画面のスクリーン・キャプチャー
2

画像のテキストに込められた感情を分析する

  1. 検出された単語からなる JSON オブジェクトを取得するためのリンクをクリックします。JSON オブジェクト内では、各単語が別々にレポートされることがわかります。
  2. 何らかの意味のある分析を行うには、単語を文の形にしなければなりません。したがって、以下のコード・スニペットを実行して文字列を作成します。
    	...
    	detected_text = [...the JSON object goes here...]
    	i = 0
    	concatenated_string = ''
    	
    	while i < len(detected_text):
    	    word = detected_text[i]['word']
    	    concatenated_string = concatenated_string + detected_text[i]['word'] + ' '
    	    i = i + 1
    	
    	print concatenated_string
  3. このコードの出力 (concatenated_string 変数に格納されたテキスト) を Watson Tone Analyzer に取り込みます。それには、デモ・サイトに移動して、「Your own text (独自のテキスト)」をクリックし、テキストを貼り付けて「Analyze (分析する)」をクリックします。以下の図に示すような出力が表示されます。
ドキュメント・レベルの分析結果を示す図
ドキュメント・レベルの分析結果を示す図
3

ツイートのテキストと画像のテキストに込められた感情の分析を繰り返す

以上の手順内で説明した分析は、画像に埋め込まれたテストだけを対象としたもので、ツイートのテキストは分析対象に含まれていません。このシリーズの第 2 回で、ツイートのテキストを分析したことを思い出してください。その時のテキストを、ステップ 2.2 で取得したテキストに追加してから、もう一度ステップ 2.3 を実行してください。同じ結果になりましたか?それとも、違った結果になっていますか?どのような結果であれ、ツイートのテキストだけを分析する場合よりも、より全体的にツイートを把握できるようになります。

画像から単語を抽出し、それらの単語にまつわる感情を分析した後、それらの単語にその画像を添付するツイート自体を組み合わせて、もう一度感情を分析しました。この手順をプログラムによって繰り返して分析の規模を広げるには、このシリーズ内で使用したコードを拡張してください。

これで、このチュートリアルは完了です!

まとめ

このチュートリアル内で、ツイートの画像に埋め込まれたテキストを分析して、画像が伝えている感情を調べました。シリーズのこれまでのチュートリアルを通して、ツイートのデータ・セットを作成し、それらのツイートからテキストを抽出し、テキストを分析して感情を調べました。また、ツイートから画像を抽出して分類しました。

今回のチュートリアルを通じて、ツイートのテキストを読み取るだけでなく、ツイートに添付された画像内で表現されている感情も読み取れるようになったはずです。それらの感情が属するカテゴリーを調べれば、その知識をビジネスの洞察に活用できます。これで、大規模なツイートのセットを処理して、ツイートにまつわる感情についての全体観を分析できるようになりました。


ダウンロード可能なリソース


関連トピック


コメント

コメントを登録するにはサインインあるいは登録してください。

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=60
Zone=ビジネス・アナリティクス, Cloud computing
ArticleID=1039172
ArticleTitle=画像からテキストを抽出して感情を分析する
publish-date=11032016