Show Menu
Cheatography

IBM Watson Simple Tone Analyzer Cheat Sheet (DRAFT) by

Ein einfaches Python Skript, welches einen oder mehrere Sätze einliest und nach Emotionen analysiert.

This is a draft cheat sheet. It is a work in progress and is not finished yet.

Einführung

Tone Analyzer ist ein A.I. Service von IBM welcher Sätze analysiert und deren Emotionen zurück­gibt. Man kann beliebig viele Sätze eingeben.

Authen­tif­izieren

authenticator = IAMAuthenticator('API-Key')
tone_analyzer = ToneAnalyzerV3(
    version='2017-09-21',
    authenticator=authenticator
)
tone_analyzer.set_service_url('URL')
Für die Verbindung wird wieder der API-Key und der URL benötigt. Beides bekommt man wenn man den Service erstellt.
2017-09-21 wäre die aktuellste Version. Alles darunter wirft eine Deprec­ate­dEx­ception

Anfrage

try:
    tone_analysis = tone_analyzer.tone(
        {'text': text},
        content_type='application/json'
    ).get_result()
except ApiException as exception:
    print("Error: " + str(exception.code) + "/ " + exception.message)
Übergeben wird der eingel­esene Text und der Conten­t-Type. Es sind weitere Parameter möglich wie z.B.:
senten­ces­='t­rue',
conten­t_l­ang­uag­e='en',
accept­_la­ngu­ege­='en'

Zum Schluss wird die Auswertung angefo­rdert.

Fazit

Bestimmt einer der intere­ssa­nteren Services der Watson Cloud. Man muss aber wirklich sehr genaue Sätze übergeben ansonsten bekommt man gar keine und eine Schlechte Analyse zurück.
https:­//w­ww.k­ag­gle.co­m/s­nap­/am­azo­n-f­ine­-fo­od-­rev­iew­s/data beinhaltet eine CSV mit tausenden Food Reviews und Werbes­prü­che­n.Wenn einmal genug Zeit und Motivation vorhanden ist könnte man ein paar davon auslesen und analys­ieren.
 

Imports

import json
from ibm_watson import ApiException
from ibm_watson import ToneAnalyzerV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
Als erstes wird json import­diert, da die Response als JSON zurück­kommt und am Ende in eine JSON-Datei geschr­ieben wird.
ApiExc­eption wird geworfen wenn bei einem Watson­-Call ein Fehler auftritt. Mögliche Error Codes werden in der Dokume­ntation erläutert.
ToneAn­alyzer3 ist der Service und IAMAut­hen­ticator wird für die Verbindung zur Cloud verwendet.

User Input

text = input("Please enter an emotional text. (English only):\n")
Je länger und detail­lierter (Adjektive und Satzze­ichen) der Satz desto besser wird die Auswer­tung. Es können auch mehrere Sätze eingegeben werden. Diese werden dann extra analys­iert.

Ausgabe

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

with open('analysis.json', 'w') as json_file:
    json.dump(json.dumps(tone_analysis, indent=2), json_file)
Die JSON-R­esponse wird formatiert und ausgeg­eben. (Konsole und File)

Ausgabe

Please enter an emotional text. (English only):
We have a competitive product, but we need to do a better job of selling it!
{
  "document_tone": {
    "tones": [
      {
        "score": 0.506763,
        "tone_id": "analytical",
        "tone_name": "Analytical"
      }
    ]
  }
}