Warum Hugging Face?
Wenn Du Text klassifizieren willst.
Ob ein Text positiv ist. Ob er zu Kategorie A oder B gehört.
Oder ob da vertrauliche Begriffe drinstehen.
Hugging Face hat tausende fertige Modelle.
Und Du kannst sie per REST direkt aus Access ansprechen.
Was brauchst Du?
- Ein Hugging Face-Konto
- Einen API-Token (
https://huggingface.co/settings/tokens
) - Ein Modell-Name (z. B.
distilbert-base-uncased-finetuned-sst-2-english
) - VBA-Kenntnisse für den REST-Call
Beispiel-Modell für Sentiment
https://api-inference.huggingface.co/models/distilbert-base-uncased-finetuned-sst-2-english
Antwort: JSON mit Labels wie POSITIVE
oder NEGATIVE
.
Tabellenstruktur (Vorschlag)
Tabelle | Zweck |
---|---|
tblTexte | Texteingaben |
tblKlassifikation | Ergebnis: Label, Score |
Access: Textklassifikation per REST
Schritt 1: Anfrage vorbereiten
Function KlassifiziereText(text As String) As String
Dim http As Object
Dim jsonRequest As String
Dim jsonResponse As String
Dim token As String
Dim modellURL As String
token = "DEIN_HUGGINGFACE_TOKEN"
modellURL = "https://api-inference.huggingface.co/models/distilbert-base-uncased-finetuned-sst-2-english"
jsonRequest = "{""inputs"":""" & Replace(text, """", "\""") & """}"
Set http = CreateObject("MSXML2.ServerXMLHTTP")
http.Open "POST", modellURL, False
http.setRequestHeader "Authorization", "Bearer " & token
http.setRequestHeader "Content-Type", "application/json"
http.Send jsonRequest
jsonResponse = http.responseText
KlassifiziereText = jsonResponse
End Function
Antwort extrahieren (Label + Score)
Function ParseHuggingFaceAntwort(json As String) As String
Dim sc As Object
Set sc = CreateObject("ScriptControl")
sc.Language = "JScript"
sc.AddCode "function parse(j) { var d=JSON.parse(j)[0]; return d.label + '|' + d.score; }"
ParseHuggingFaceAntwort = sc.Run("parse", json)
End Function
Speichern des Ergebnisses
Sub SpeichereKlassifikation(textID As Long, label As String, score As Double)
CurrentDb.Execute "INSERT INTO tblKlassifikation (TextID, Label, Score) VALUES (" & _
textID & ", '" & Replace(label, "'", "''") & "', " & Replace(score, ",", ".") & ")"
End Sub
Beispiel: Text analysieren
Sub AnalysiereText(textID As Long, eingabe As String)
Dim json As String
Dim auswertung As String
Dim teile() As String
json = KlassifiziereText(eingabe)
auswertung = ParseHuggingFaceAntwort(json)
teile = Split(auswertung, "|")
If UBound(teile) = 1 Then
Call SpeichereKlassifikation(textID, teile(0), CDbl(teile(1)))
MsgBox "Klassifikation: " & teile(0) & " (" & Format(teile(1), "0.00%") & ")"
Else
MsgBox "Fehler beim Parsen der Antwort."
End If
End Sub
Beispiel für andere Modelle
Aufgabe | Modellname |
---|---|
Sentiment (Englisch) | distilbert-base-uncased-finetuned-sst-2-english |
Topic Detection | finiteautomata/bertweet-base-emotion-analysis |
Toxic Language | unitary/toxic-bert |
Textklassifikation | Eigene Modelle per AutoTrain auf Hugging Face trainieren |
Was Du beachten musst
- Antwortzeit kann 2–5 Sekunden betragen
- Token monatlich begrenzt im Free-Tarif
- Nicht alle Modelle liefern gleiches JSON-Format
- Texte vorher bereinigen (z. B. HTML entfernen)
Optional: Klassifikationsvorschau im Formular
Private Sub btnTest_Click()
Call AnalysiereText(Me.txtID, Me.txtText)
End Sub
„Hugging Face denkt, Access dokumentiert.“
Wenn Du’s brauchst: Ich setz Dir das auf.
NLP, ohne Data Science-Overkill. Aber mit klarer Struktur.
No responses yet