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
Flexibel nach mehrern Begriffen in Text suchen
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.
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.
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"
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"
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.
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.
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.
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.