Klassifikation von Zeilen (z. B. „Spam“, „Priorität“, „Kategorie“) durch Hugging Face oder Azure AI

Worum geht’s?

Du hast viele Texte in Excel.
Support-Anfragen, interne Kommentare, Nachrichten.

Und Du willst wissen:
Ist das Spam?
Hat das Priorität?
Worum geht’s inhaltlich?

Könnte man manuell machen.
Oder Du lässt Azure oder Hugging Face klassifizieren.
Direkt aus Excel. Mit VBA.

Was brauchst Du?

  • Excel 2024 mit Makrozugriff
  • API-Zugang zu Azure OpenAI oder Hugging Face
  • Eine Spalte mit Texten
  • Eine leere Spalte für die Klassifikation

Beispielhafte Tabelle

NachrichtentextKlassifikation
Ich brauche dringend Hilfe mit Rechnung 42Priorität
Jetzt gratis gewinnen – klicken Sie hierSpam
Anfrage zum Vertrag vom 12.3.Anfrage

Klassifikation per Prompt

Beispiel GPT-Prompt (Azure oder OpenAI):

Analysiere den folgenden Text und gib exakt eine der folgenden Kategorien zurück: Spam, Priorität, Anfrage, Info, Sonstiges. Text: [Text hier]

Beispiel für Hugging Face Zero-Shot:

Labels: ["Spam", "Anfrage", "Priorität", "Info", "Sonstiges"]
Model: z. B. facebook/bart-large-mnli

Variante: Azure OpenAI

VBA-Funktion zur Klassifikation

Function KlassifiziereTextAzure(text As String) As String
    Dim http As Object
    Dim apiKey As String
    Dim prompt As String
    Dim result As String
    Dim json As String

    apiKey = "<dein-key>"

    prompt = "Analysiere den folgenden Text und gib exakt eine der folgenden Kategorien zurück: Spam, Priorität, Anfrage, Info, Sonstiges." & vbCrLf & "Text: " & text

    json = "{""messages"":[{""role"":""user"",""content"":""" & Replace(prompt, """", "\""") & """}],""temperature"":0}"

    Set http = CreateObject("MSXML2.XMLHTTP")
    With http
        .Open "POST", "https://<region>.api.cognitive.microsoft.com/openai/deployments/<deployment-name>/chat/completions?api-version=2024-03-01", False
        .setRequestHeader "Content-Type", "application/json"
        .setRequestHeader "api-key", apiKey
        .send json
        result = .responseText
    End With

    Dim startPos As Long, endPos As Long
    startPos = InStr(result, """content"":""") + 11
    endPos = InStr(startPos, result, """}")
    KlassifiziereTextAzure = Mid(result, startPos, endPos - startPos)
End Function

Variante: Hugging Face Zero-Shot API

Authentifizierung vorbereiten

VBA-Funktion zur Klassifikation

Function KlassifiziereMitHuggingFace(text As String) As String
    Dim http As Object
    Dim token As String
    Dim json As String
    Dim result As String

    token = "hf_..." ' Hugging Face API-Token

    json = "{""inputs"":""" & Replace(text, """", "\""") & """,""parameters"":{""candidate_labels"":[""Spam"",""Priorität"",""Anfrage"",""Info"",""Sonstiges""]}}"

    Set http = CreateObject("MSXML2.XMLHTTP")
    With http
        .Open "POST", "https://api-inference.huggingface.co/models/facebook/bart-large-mnli", False
        .setRequestHeader "Authorization", "Bearer " & token
        .setRequestHeader "Content-Type", "application/json"
        .send json
        result = .responseText
    End With

    Dim labelStart As Long, labelEnd As Long
    labelStart = InStr(result, """labels"":[""") + 10
    labelEnd = InStr(labelStart, result, """")
    KlassifiziereMitHuggingFace = Mid(result, labelStart, labelEnd - labelStart)
End Function

Spalte automatisiert klassifizieren

Sub KlassifiziereSpalte()
    Dim zeile As Long
    Dim letzte As Long
    Dim text As String
    Dim kategorie As String

    letzte = Cells(Rows.Count, 1).End(xlUp).Row

    For zeile = 2 To letzte
        text = Cells(zeile, 1).Value
        If Len(Trim(text)) > 0 Then
            kategorie = KlassifiziereTextAzure(text) ' Oder KlassifiziereMitHuggingFace(text)
            Cells(zeile, 2).Value = Trim(kategorie)
            DoEvents
            Application.Wait Now + TimeValue("0:00:01")
        End If
    Next zeile

    MsgBox "Klassifikation abgeschlossen."
End Sub

Tipps aus der Praxis

  • Kurze Texte funktionieren besser
  • GPT-Modelle liefern konstantere Antworten, wenn Du genaue Anweisung gibst
  • Hugging Face ist günstiger, aber nicht immer aktuell trainiert
  • Ergebnisse am besten mit fester Label-Liste abgleichen

Erweiterungsideen

  • Klassifikation + Weiterleitung (z. B. „Spam“ in extra Sheet)
  • Mehrstufige Klassifikation (Thema + Dringlichkeit)
  • Logging der Ergebnisse mit Zeitstempel
  • Farben und Symbole per VBA setzen

Wenn Du viele Texte schnell einordnen musst – dann bau Dir eine KI-Klassifikation in Excel und lass GPT oder Hugging Face das Kleinklein übernehmen.

Keine Antworten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert