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

#はじめに
技術系の記事を初めて書くので、暖かい目で見てください。
英語の勉強として[英語版](https://medium.com/@170441089/ibm-cloud-watson-tone-analyzer-support-japanese-by-python-a09dac6d905c?fbclid=IwAR0A875HFbS39DoXNGUpDDYeRQ1BbzYjTF1hJhuwI_P1IU1xW_73dkP5qBE)も書いてます

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

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

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

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()
```

###完成形

```python: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
<b>※ IBM Cloud アカウントとWatson Tone Analyzer serviceを作成していることが前提</b>

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()
```

###完成形

```python: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 日本語対応版

```python: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](https://www.ibm.com/watson/jp-ja/developercloud/language-translator.html)
[Watson Language Translator by Python](https://cloud.ibm.com/apidocs/language-translator?code=python)
[Watson Tone Analyzer](https://www.ibm.com/watson/jp-ja/developercloud/tone-analyzer.html)
[Watson Tone Analyzer by Python](https://cloud.ibm.com/apidocs/tone-analyzer?code=python)