7
10

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 5 years have passed since last update.

IBM Cloud Watson Tone Analyzer 日本語対応 by Python

Last updated at Posted at 2019-09-30

#はじめに
技術系の記事を初めて書くので、暖かい目で見てください。
英語の勉強として英語版も書いてます

Watson Tone Analyzer は日本語に対応していません。
そのため、無理やりではありますが、日本語を感情分析する方法をご紹介します。
それは、Watson Language Translatorを用いて一度英語に直してから、Watson Tone Analyzerを使用する方法です。

#Watson Language Translator
###Watson Language Translator とは
Watson Language Translator は、テキストを別の言語にリアルタイムで翻訳します。
また、カスタム翻訳モデルも作成可能です。

###Watson Language Translatorの使い方 by Python
※ IBM Cloud アカウントとWatson Language Translator serviceを作成していることが前提

Watsonの処理結果がJSONファイルで返ってくるため、JSONモジュールをインポートします。
また、Watson Language Translator service を使用するために、LanguageTranslatorV3モジュールをインポートします。

import json
from ibm_watson import LanguageTranslatorV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

使用する Watson Language Translator の情報を登録します。

language_translator = LanguageTranslatorV3(
    version='{version}',
    authenticator=IAMAuthenticator('{apikey}'))
language_translator.set_service_url('{url}')

Watson Language Translator により、日本語を英語に翻訳してもらいます。
その結果は、JSONファイルで返ってきます。

translation = language_translator.translate(
    text='{Japanese you want to translate into English}',
    model_id='ja-en').get_result()

###完成形

LanguageTranslator.py
import json
from ibm_watson import LanguageTranslatorV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

language_translator = LanguageTranslatorV3(
    version='{version}',
    authenticator=IAMAuthenticator('{apikey}'))
language_translator.set_service_url('{url}')

translation = language_translator.translate(
    text='{Japanese you want to translate into English}',
    model_id='ja-en').get_result()

print(json.dumps(translation, indent=2))

#Watson Tone Analyzer
###Watson Tone Analyzer とは
Watson Tone Analyzer は、テキストに現れるトーンや感情を分析します。
感情としては、怒り, 不安, 喜び, 悲しみなどを、文体については、確信的, 分析的, あいまいなどを検出します。

###Watson Tone Analyzerの使い方 by Python
※ IBM Cloud アカウントとWatson Tone Analyzer serviceを作成していることが前提

Watsonの処理結果がJSONファイルで返ってくるため、JSONモジュールをインポートします。
また、Watson Tone Analyzer service を使用するために、ToneAnalyzerV3モジュールをインポートします。

import json
from ibm_watson import ToneAnalyzerV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

使用する Watson Tone Analyzer の情報を登録します。

tone_analyzer = ToneAnalyzerV3(
    version='{version}',
    authenticator=IAMAuthenticator('{apikey}'))
tone_analyzer.set_service_url('{url}')

Watson Tone Analyzer により、英語文が分析されます。
その結果は、JSONファイルで返ってきます。

tone_analysis = tone_analyzer.tone(
    {'text': '{English sentence you want to analyze}'},
    content_type='application/json').get_result()

###完成形

ToneAnalyzer.py
import json
from ibm_watson import ToneAnalyzerV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

tone_analyzer = ToneAnalyzerV3(
    version='{version}',
    authenticator=IAMAuthenticator('{apikey}'))
tone_analyzer.set_service_url('{url}')

tone_analysis = tone_analyzer.tone(
    {'text': '{English sentence you want to analyze}'},
    content_type='application/json').get_result()

print(json.dumps(tone_analysis, indent=2))

#Watson Tone Analyzer 日本語対応版

sample.py
import json
from ibm_watson import LanguageTranslatorV3, ToneAnalyzerV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator

language_translator = LanguageTranslatorV3(
    version='{version}',
    authenticator=IAMAuthenticator('{apikey}'))
language_translator.set_service_url('{url}')

tone_analyzer = ToneAnalyzerV3(
    version='{version}',
    authenticator=IAMAuthenticator('{apikey}'))
tone_analyzer.set_service_url('{url}')

translation = language_translator.translate(
    text='{Japanese sentence you want to analyze}',
    model_id='ja-en').get_result()

tone_analysis = tone_analyzer.tone(
    {'text': str(translation['translations'][0]['translation'])},
    content_type='application/json').get_result()

print(json.dumps(tone_analysis, indent=2))

#最後に
初めて技術系の記事を書いたため、伝わりにくい部分があったら、申し訳ありません。
まだ発展途上なんで笑笑

#参考にしたもの
Watson Language Translator
Watson Language Translator by Python
Watson Tone Analyzer
Watson Tone Analyzer by Python

7
10
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
7
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?