Inspiricon-Textanalyse-mit-SAP-HANA_jack-moreh

Wie euch die Textanalyse mit SAP HANA zu wertvollen Erkenntnissen verhelfen kann

Wissen ist Macht, so viel ist klar. Wir sammeln jeden Tag Informationen, teilen sie mit der Welt oder tragen sie in die sozialen Netzwerke. Unser Alltag ist durchdrungen von Informationen. Aber was können wir mit all diesem Wissen anfangen? Zuallererst können wir es in Datenform abspeichern.

Daten lassen sich in zwei Kategorien unterteilen: unstrukturierte und strukturierte Daten.

inspiricon-figure1-unstructured-structured-data

Abbildung 1. Wie sich unstrukturierte und strukturierte Daten unterscheiden.

Was sind unstrukturierte Daten?

Mit dem Begriff „unstrukturierte Daten“ bezeichnet man in aller Regel Informationen, die nicht in klassischen zeilen- oder spaltenbasierten Datenbanken vorgehalten werden. Beispiele hierfür sind Facebook, Twitter oder auch E-Mails.

Die Vorteile strukturierter Daten liegen darin, dass sie sich maschinengestützt identifizieren und verarbeiten lassen. Sind die Daten erst einmal gespeichert, lassen sie sich viel einfacher für bestimmte Zwecke durchsuchen, zusammenstellen und filtern.

Was sind strukturierte Daten?

Daten, die sich in einem festgelegten Feld innerhalb eines Datensatzes oder einer Datei befinden, werden als strukturierte Daten bezeichnet. Ein Beispiel hierfür sind Datenbanken.

Textanalyse versetzt uns also in die Lage, unstrukturierte Daten in strukturierte Daten zu verwandeln und diese im Anschluss zu analysieren.

Was verstehen wir unter Textanalyse?

Mit dem Begriff Textanalyse beschreiben wir das Zusammenspiel aus Verfahren aus der Linguistik, Statistik und dem maschinellen Lernen, die den Informationsgehalt von Textquellen zum Zwecke der explorativen Datenanalyse, Forschung oder Untersuchung modellieren und strukturieren.

Die SAP-HANA-gestützte Textanalyse setzt auf umfassende linguistische und statistische Verfahren, um unstrukturierte Texte zu extrahieren und klassifizieren und so in Entitäten und Domänen umzuwandeln.

Mit der SAP-HANA-Plattform erhaltet ihr wertvolle Einblicke aus euren unstrukturierten Textdaten. Die Plattform gibt euch Funktionen für Suche, Textanalyse und Text Mining in unstrukturierten Textquellen an die Hand.

In der Textanalyse kommt eine Reihe von Verfahren zum Einsatz, um bestimmte Zeichenfolgen zu finden oder linguistische Suchen durchzuführen.

  • Volltextindizierung:
    Ein Volltextindex ist eine besondere Form des Token-basierten funktionalen Index, der über das Volltextmodul für SQL Server erstellt und gepflegt wird.
  • Volltextsuche:
    Die Volltextsuche ist auf linguistische (sprachbasierte) Suchen in Texten und Dokumenten in Ihrer Datenbank ausgelegt.
  • Unscharfe Suche (Fuzzy Search):
    Bei der unscharfen Suche handelt es sich um ein Verfahren zum Auffinden von Zeichenfolgen, die annähernd einem bestimmten Muster entsprechen. Bei diesem Suchtyp werden auch dann Treffer gefunden, wenn der Benutzer Rechtschreibfehler macht oder nur unvollständige Wörter als Suchanfrage verwendet.

In diesem Artikel beschäftigen wir uns mit der Volltextindizierung.

Volltextindizierung: Tabelle $TA

  • Durch die Erstellung eines Volltextindexes mit dem Parameter TEXT ANALYSIS ON wird eine Tabelle mit dem Namen $TA_<indexname> angelegt, die linguistische oder semantische Analyseergebnisse enthält.
  • Die Menge der Spalten in der Tabelle mit dem Präfix $TA bleibt unabhängig von der mit dem Volltextindex verwendeten Textanalysekonfiguration immer gleich:

inspiricon-figure2-ta-table

Abbildung 2. Beispielhafte Darstellung einer TA-Tabelle

  • Schlüsselspalten aus Quelltabelle (ID):
    Die ersten Spalten in der Tabelle $TA sind eine direkte Kopie der Schlüsselspalten aus der Quelltabelle.
  • TA_RULE:
    Die Regel, über die Ausgabe erstellt wurde. In aller Regel handelt es sich hierbei um LXP für die linguistische Analyse bzw. um Entity Extraction für die Entitäten- und Faktenanalyse.
  • TA_COUNTER:
    Eine eindeutige fortlaufende Nummer für jeden aus dem Dokument extrahierten Token.
  • TA_TOKEN:
    Die aus dem Dokument extrahierten Begriffe, Fakten oder Entitäten.
  • TA_LANGUAGE:
    Die Sprache, in der das Dokument verfasst wurde.
  • TA_TYPE:
    Die Art des Tokens. In der linguistischen Analyse handelt es sich hierbei um die Wortart. In der semantischen Analyse bezeichnet dies den Entitätstyp oder den Fakt. (’noun, ‚StrongPositiveSentiment‘, ‚Person‘)
  • TA_NORMALIZED:
    Die normalisierte Version des Tokens. Die Beugung wird beibehalten, Großschreibung und diakritische Zeichen werden jedoch entfernt. Im Falle der Extraktion von Entitäten ist die Spalte null.
  • TA_STEM:
    Die Stammform des Tokens. Der Eintrag in diesem Feld ist ungebeugt und normalisiert. Sind Token und Stammform identisch ist diese Spalte null. Im Falle der Extraktion von Entitäten ist die Spalte ebenfalls null.
  • TA_PARAGRAPGH:
    Der Absatz im Dokument, der den Token enthält.
  • TA_SENTENCE:
    Der Satz im Dokument, der den Token enthält.
  • TA_CREATED_AT:
    Erstellungszeitpunkt des Datensatzes.
  • TA_OFFSET:
    Der Zeichenoffset vom Dokumentenanfang an.
  • TA_PARENT:
    Der TA_COUNTER-Wert vom übergeordneten Element dieses Token.

Integrierte Konfigurationen

SAP HANA verfügt über sieben integrierte Konfigurationen, die der Analyse des Verhaltens und der Textausgabe dienen:

  • LINGANALYSIS_BASIC:
    Hierbei handelt es sich um die grundlegendste Form der linguistischen Analyse. Dabei wird zwar die Datei mit Token versehen, die Normalisierung und Zurückführung in die Stammform entfallen jedoch, so dass die Spalten für TA_NORMALIZED und TA_STEM leer bleiben.
  • LINGANALYSIS_STEMS:
    Bei dieser Konfiguration erfolgt für die Token die Normalisierung und die Zurückführung in die Stammform, die Felder TA_NORMALIZED und TA_STEM werden also befüllt.
  • LINGANALYSIS_FULL:
    Hierbei wird eine vollständige linguistische Analyse durchgeführt, so dass alle Spalten in der Tabelle $TA befüllt werden.
  • EXTRACTION_CORE:
    Hierbei werden Entitäten aus dem Text extrahiert. Dabei kann es sich zum Beispiel um Menschen, Orte oder URLs handeln.
  • EXTRACTION_CORE_VOICEOFCUSTOMER:
    Hierbei werden Entitäten und Fakten extrahiert, um positive und negative Stimmungen im Zusammenhang mit den Token zu identifizieren.
  • EXTRACTION_CORE_ENTERPRISE:
    Dieses Verfahren dient der Extraktion von Daten für Unternehmenszwecke, so zum Beispiel Daten zu Fusionen, Übernahmen, organisatorischen Veränderungen und Produktveröffentlichungen.
  • EXTRACTION_CORE_PUBLIC_SECTOR:
    Hierbei werden sicherheitsrelevante Daten über öffentliche Personen, Ereignisse und Organisationen extrahiert.

Erstellen einer Tabelle und eines Index

Im Folgenden findet ihr ein Praxisbeispiel für die EXTRACTION_CORE_ VOICEOFCUSTOMER-Konfiguration zum Identifizieren von Stimmungen (positive oder negative Gefühle):

Zunächst müssen wir eine Tabelle erstellen, Werte einfügen und einen Index erstellen.

Öffnet dazu eine SQL-Konsole und gebt den folgenden Befehl ein:

inspiricon-figure3-create-table

Abbildung 3. Tabelle erstellen

 inspiricon-figure4-create-Index-insert-values

Abbildung 4. Index erstellen und Werte eingeben

Die erstellte Tabelle sieht folgendermaßen aus:

inspiricon-figure5-created-table

Tabelle 5. Tabelle

Im letzten Schritt erhalten wir die Textanalyse. Wie ihr sehen könnt, erscheinen „likes“ und „enjoys“ als „WeakPositiveSentiment“, also als schwaches positives Gefühl.

inspiricon-figure6-text-analysis

Abbildung 6. Textanalyse

Hinweis: Dieser Artikel wurde angeregt durch den folgenden Blogartikel https://blogs.sap.com/2017/05/21/sap-hana-ta-text-analysis/

Autor dieses Beitrags
Adelina Ramona Popa und
Lucian Tomeac
Associates SAP BI
Tel.: +49 (0) 7031 714 660 0
E-Mail: cluj@inspiricon.de