Flexibel nach mehrern Begriffen in Text suchen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
drnicolas
User
Beiträge: 91
Registriert: Sonntag 24. Juli 2016, 10:32

Ich weiss leider nicht wie man mein "Problem" bezeichnet.

Ich muss mit Begriffen aus dem Verwendungszweck von Bankbuchungen in Texten suchen. Letztlich weiss ich aber meist nicht nach was ich suchen soll.

Z.B. taucht häufig eine Rechnungsnummer zusammen mit anderen Angaben im Verwendungszweck auf.
Gint es dafür eine fertige Lösung wie man flexibel nach mehreren Begriffen suchen kann, ggf. auch als Teilmenge einer längeren Ziffernkolonne?

RegEx scheint mir da eher ungeeignet
Sirius3
User
Beiträge: 17826
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn Du nicht weißt, was Du suchen sollst, wird es schwierig, einem Computer zu erklären, was gesucht werden soll.
Wenn die Verwendungszwecke bestimmten Mustern folgen, dann ist RegEx das geeignete.
imonbln
User
Beiträge: 149
Registriert: Freitag 3. Dezember 2021, 17:07

drnicolas hat geschrieben: Freitag 5. Januar 2024, 12:42 Letztlich weiss ich aber meist nicht nach was ich suchen soll.
Ich denke hier liegt das Problem, wenn du es selbst nicht weißt, wie willst du dann einen Computer beibringen es zu wissen?
Erst wenn du hier Regeln definieren kannst wie: „Wenn A dann (meistens) B oder D“ lohnt es sich über Automatisierung zu reden.
juwido
User
Beiträge: 20
Registriert: Donnerstag 15. Dezember 2022, 13:41

oder 'ne KI anlernen...?
nezzcarth
User
Beiträge: 1647
Registriert: Samstag 16. April 2011, 12:47

Wie die anderen schon meinten, ist es bei solchen Aufgaben wichtig, das Problem genau zu analysieren. Zudem ist definiert, welche Zeichen in einem Verwendungszweck vorkommen dürfen und wie lang er sein darf (bei SEPA z.B. 140 Zeichen). Diese Informationen kannst du ggf. zusammen mit regulären Ausdrücken kombinieren, um dich einer Lösung anzunähern. Es macht aber keinen Sinn, vorher schon zu kompliziert zu werden. Daher muss man sich genau überlegen, was eigentlich das Ziel ist und schauen, welche Struktur die Datenbasis hat.
drnicolas
User
Beiträge: 91
Registriert: Sonntag 24. Juli 2016, 10:32

Okay, die Fragestellung war etwas unglücklich.

Bisher suche ich in mehreren Schritten:

1. Betrag und End-to-End-Referenz - funktioniert super bei den wenigen Buchungen in denen die Buchung diese Angaben enthäl
2. dto aber mit Customerreference - sehr selten
3. Gläubiger-ID/Mandatsreferenz + Betrag funktioniert auch ganz gut
4. Mit Daten aus dem Verwendungszweck.
hier klemmt es regelmässig, da oftmals mehr als 1 Begriff auftaucht.
Beispiele:
"Rechnung 0815"
"Re-Nr 4711a0815 9903 24"
Es gibt halt keinen typische Struktur

ich könnte jetzt die einzelnen Begirffe aufteilen und suchen
"Rechnung" und Betrag ist zu unspezifisch; gerade bei mehreren Rechnungen mit gelichem Betrag

ich hatte eigentlich auf eine Antwort gehofft, etwa so:
"Das ist ein typisches Problem und trägt den Fachbegriff 'rubbeldiekatz'"
"dafür gibt es eine herovraagende Python-Bibliothek die genua dieses Problem adressiert"
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Joa, das hoffen wir alle. Aber ist halt so nicht. Ich habe sowas mal fuer Hotelratenbeschreibungen und die Extraktion, ob Fruehsttueck enthalten ist, oder nicht, gebaut. Damals habe ich crm114 discriminator verwendet, zusammen mit ein bisschen hand-getuntem stemming. Und ich hatte ja nur zwei Klassen. Letztlich ist das ganze aber gescheitert, weil die grosse Menge an Schreibweisen einfach nicht sauber zu klassifizieren war. Heutzutage wuerde ich eher XG Boost oder aehnliches darauf loslassen.

Das Problem ist halt, das die Beschreibungen wie hier auch letztlich beliebig sind. Wie schon vorgeschlagen ist ein maschinelles Lernverfahren der vielversprechenste Weg. Es gibt einen Grund, warum das einscannen von Rechnungen via Banking-App zB an nur 1-2 grosse Anbieter delegiert wird, die massive Datensaetze haben, um das zu knacken.
Benutzeravatar
sparrow
User
Beiträge: 4237
Registriert: Freitag 17. April 2009, 10:28

Ergänzend: Wenn man eine Firma ist und früh genug daran gedacht hat, hat man Nummernkreise/Identifikationsmerkmale gewählt, die bei der Erkennung von Identifiern helfen, ohne dass ein Begleittext dabei stehen muss.

Ein nach wie vor in Dokumentensystemen eingesetztes Verfahren: Man legt Regeln fest, die entsprechende Informationen extrahieren. Wird keine Information gefunden, wird ausgeschleust, manuel nachgearbeitet und die passende Regel hinterlegt.
Als ähnlich dem ML Training-Zyklus, nur auf die konventionelle Art.
Je nach wirklichen Umfang geht das ganz gut.
Antworten