Warum das praktisch ist

Weil Du manchmal wissen willst, welche Namen, Orte oder Firmen in einem Text vorkommen –
z. B. fĂŒr CRM-Importe, DatenschutzprĂŒfung oder Klassifikation.

Mit NER kannst Du genau das automatisieren.
Und Word markiert Dir direkt die Fundstellen.
Per VBA.
Mit Hugging Face oder Azure als Dienst dahinter.

Was erkannt wird

EntitÀtstypBeispiele
Person„Max Mustermann“, „Angela Merkel“
Ort„Berlin“, „LĂŒbeck“, „Ostsee“
Organisation„Microsoft“, „Handelskammer“

Variante A: Hugging Face NER via REST

Schritt 1: Text aus Word holen

Function HoleMarkiertenText() As String
    If Selection.Type = wdNoSelection Then
        MsgBox "Bitte zuerst Text markieren."
        HoleMarkiertenText = ""
        Exit Function
    End If
    HoleMarkiertenText = Selection.Text
End Function

Schritt 2: Hugging Face API aufrufen

Function HF_NER(text As String) As String
    Dim http As Object
    Dim json As String
    Dim token As String
    token = "DEIN_HF_TOKEN"

    json = "{""inputs"":""" & Replace(text, """", "\""") & """}"

    Set http = CreateObject("MSXML2.ServerXMLHTTP")
    http.Open "POST", "https://api-inference.huggingface.co/models/dbmdz/bert-large-cased-finetuned-conll03-english", False
    http.setRequestHeader "Authorization", "Bearer " & token
    http.setRequestHeader "Content-Type", "application/json"
    http.Send json

    HF_NER = http.responseText
End Function

Schritt 3: JSON-Ergebnis auswerten

Function ExtrahiereNER(text As String) As Collection
    Dim sc As Object
    Set sc = CreateObject("ScriptControl")
    sc.Language = "JScript"

    sc.AddCode "function parse(j) {" & _
        "var res = []; " & _
        "var data = JSON.parse(j); " & _
        "for (var i=0; i<data.length; i++) {" & _
        "  if (data[i].entity_group && data[i].word) res.push(data[i].entity_group + ':' + data[i].word); " & _
        "} return res; }"

    Dim output As Variant
    Set output = sc.Run("parse", text)

    Dim result As New Collection
    Dim i As Long
    For i = 0 To UBound(output)
        result.Add output(i)
    Next
    Set ExtrahiereNER = result
End Function

Schritt 4: Markierung im Dokument

Sub MarkiereNER()
    Dim text As String
    text = HoleMarkiertenText()
    If text = "" Then Exit Sub

    Dim json As String
    json = HF_NER(text)

    Dim nerItems As Collection
    Set nerItems = ExtrahiereNER(json)

    Dim word As Variant
    For Each word In nerItems
        Dim teile() As String
        teile = Split(word, ":")
        Call SucheUndMarkiere(teile(1), teile(0))
    Next
End Sub

Sub SucheUndMarkiere(wort As String, typ As String)
    Dim rng As Range
    Set rng = ActiveDocument.Content
    With rng.Find
        .Text = wort
        .MatchCase = False
        .MatchWholeWord = True
        Do While .Execute
            rng.HighlightColorIndex = wdYellow
            rng.Font.Bold = True
            rng.InsertAfter " [" & typ & "]"
            rng.Collapse wdCollapseEnd
        Loop
    End With
End Sub

Variante B: Azure Language Services (NER-Modul)

Azure bietet eine fertige NER-API als Teil der Language Services.
Du brauchst:

  • Ressource in Azure
  • Endpoint + SchlĂŒssel
  • "https://<region>.api.cognitive.microsoft.com/text/analytics/v3.2/entities/recognition/general"

Die Logik ist Ă€hnlich – JSON senden, Antwort parsen, Fundstellen markieren.

Was das bringt

SzenarioNutzen
DatenschutzprĂŒfungNamen & Firmen erkennen
Vorverarbeitung fĂŒr CRMFirmen und Orte automatisch erfassen
BriefanalyseWas kommt in welchem Text wie oft vor?

Was Du beachten musst

  • Hugging Face NER ist englisch – bei deutschem Text eingeschrĂ€nkt
  • Azure erkennt auch Deutsch, aber ist kostenpflichtig
  • Ergebnis muss nachbearbeitet werden (z. B. Doppelmarkierung vermeiden)
  • GPT kann alternativ via Prompt auch NER ĂŒbernehmen, aber unstrukturierter

Erweiterungsideen

  • Treffer als Kommentar statt Markierung
  • Fundstellen in Tabelle exportieren
  • Heatmap: Farbe je nach HĂ€ufigkeit oder Typ

„Du liest nur noch das Wichtige. GPT und NER finden den Rest.“

Wenn Du sowas brauchst: Sag Bescheid.
Ich bau Dir NER so in Word ein, dass Du nie wieder manuell suchst.

Tags:

No responses yet

Schreibe einen Kommentar

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