#はじめに
技術系の記事を初めて書くので、暖かい目で見てください。
英語の勉強として英語版も書いてます
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()
###完成形
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()
###完成形
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 日本語対応版
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