[gnucash-de] Zurücksetzen des Bayes-Algorithmus
Christian Gruber
christian_gruber at gmx.de
Mi Feb 5 16:08:18 EST 2020
Hallo Peter,
auch wenn du bereits eine valide Lösung gefunden hast, die alten
Mapping-Einträge in deiner Datenbank zu entfernen, habe ich mal noch ein
paar Kommentare hinzugefügt.
Am 05.02.20 um 16:12 schrieb Peter Zimmerer:
> Hallo zusammen,
>
> inzwischen habe ich die Reparatur wie unten vorgeschlagen auch
> ausgeführt. Danach konnte ich die Import-Zuordnungen mit dem Editor
> wieder bearbeiten.
>
> Gruß,
> Peter
>
>
> Am 03.02.20 um 18:03 schrieb Peter Zimmerer:
>> Hallo zusammen,
>>
>> angeregt durch diese Diskussion habe ich auch mal bei mir versucht, den
>> Editor für die Import-Zuordnungen aufzurufen. Leider führt das bei mir
>> zum Crash von Gnucash mit folgender Fehlermeldung auf der Konsole:
>>
>> terminate called after throwing an instance of 'std::out_of_range'
>> what(): basic_string::substr: __pos (which is 17) > this->size()
>> (which is 16)
Ich habe mal in den Code reingeschaut. Dieser Fehler tritt auf, wenn es
Mapping-Einträge gibt, die kürzer als 16 Zeichen (Länge der Konto-GUID)
sind. Dagegen ist der Code nicht abgesichert. Die Frage ist allerdings,
wo kamen diese Einträge her?
>>
>> Der Abbruch kommt aus der Funktion parse_bayes_imap_info (Quelldatei
>> gnucash/libgnucash/engine/Account.cpp) und wird durch Einträge in den
>> Mapping-Daten (Tabelle SLOTS) mit dem Wert NAME = 'import-map-bayes'
>> verursacht.
>>
>> Daneben gibt es noch jede Menge Mapping-Einträge in der Tabelle SLOTS,
>> die nicht dem Muster (regulärer Ausdruck)
>> '^import-map-bayes/.*/[0-9a-f]{32}$' genügen. Ich vermute, das sind
>> alles Mappings, die mit einer früheren Gnucash-Version angelegt wurden
>> und die beim einem Upgrade nicht umgesetzt wurden. Sie zeigen mit Ihrer
>> OBJ_GUID auch nicht auf eine gültige Konto-GUID, wie das der Fall ist,
>> wenn ich heute eine neue Gnucash-Datei anlege, Kontoumsätze abfrage und
>> zuordne und damit neue Mappings erzeuge.
Die Struktur der Mapping-Einträge wurde irgendwann mal gegenüber
früheren Versionen geändert, sollte aber automatisch von GnuCash
konvertiert werden, sobald während eines Imports mit einer neueren
GnuCash-Version neue Mapping-Einträge angelegt werden.
Aufgrund des obigen Fehlers und den von dir gefundenen nicht
regelkonformen Mapping-Einträgen vermute ich, dass bei dir beim
Konvertieren der Mapping-Einträge etwas schief gelaufen ist. Der
Konvertierungsvorgang kann ziemlich lange dauern. Ich habe kürzlich
genau dazu eine Fehlermeldung analysiert (siehe Bug 797463
<https://bugs.gnucash.org/show_bug.cgi?id=797463>). Könnte es sein, dass
du GnuCash während des Konvertierungsvorgangs abgewürgt hast?
>>
>> Ich habe meine Gnucash-Daten in einer Postgres-Datenbank abgelegt. Ich
>> würde daher versuchen, die alten Einträge mit folgendem SQL-Kommando zu
>> löschen:
>>
>> delete from slots
>> where
>> name = 'import-map-bayes' or
>> name like 'import-map-bayes/%' and
>> obj_guid not in (select guid from accounts)
>>
>> Kann das jemand bestätigen oder mir einen anderen Reparaturvorschlag nennen?
>>
>> Vielen Dank schon mal im voraus!
>>
>> Gruß,
>> Peter
>>
>>
>>
>> Am 30.01.20 um 20:31 schrieb Christian Gruber:
>>> Hallo Carsten,
>>>
>>> ich habe auch Probleme mit dem Bayes-Algorithmus festgestellt und bin
>>> seit einigen Wochen dabei, diesen zu debuggen.
>>>
>>> Die ersten Fehler habe ich bereits gefunden und gemeldet (siehe Bug
>>> 797587 <https://bugs.gnucash.org/show_bug.cgi?id=797587>). Ich bin auch
>>> schon an einer Lösung dran. Möglicherweise würde das schon einige
>>> Zuordnungsprobleme bei dir lösen.
>>>
>>> Man kann den Algorithmus wieder auf "Null" zurücksetzen, indem man mit
>>> dem Import-Zuordnungen Editor alle Einträge löscht (siehe Antwort von
>>> Hartmut). Allerdings befürchte ich, dass sich die gleichen Probleme nach
>>> kurzer Zeit wieder einstellen werden.
>>>
>>> Gruß Christian
>>>
>>>
>>> Am 27.01.20 um 16:43 schrieb Carsten Paukert:
>>>> Moin zusammen,
>>>>
>>>> ich stelle fest, dass eine ganze Reihe von Buchungen, die ich online
>>>> abrufe, nicht korrekt erkannt und zugeordnet werden. Darunter eine
>>>> ganze Reihe monatlich wiederkehrender Abbuchungen mit, wie ich denke,
>>>> leicht zu identifizierenden Übereinstimmungen.
>>>> Was gibt es für Möglichkeiten, den Algorithmus besser zu trainieren?
>>>> Kann ich ihn irgendwie auf Null setzen und mit dem anlernen von vorne
>>>> beginnen, damit sich von Anfang an keine Fehler einschleichen?
>>>>
>>>> Vielen Dank für Eure Hinweise.
>>>>
>>>> Gruß
>>>>
>>>> Carsten
>>>>
>>>> P.S.: Ich bin kein Coder. :-/
>>>>
>>>> _______________________________________________
>>>> gnucash-de mailing list
>>>> gnucash-de at gnucash.org
>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-de
>>> _______________________________________________
>>> gnucash-de mailing list
>>> gnucash-de at gnucash.org
>>> https://lists.gnucash.org/mailman/listinfo/gnucash-de
>>
>> _______________________________________________
>> gnucash-de mailing list
>> gnucash-de at gnucash.org
>> https://lists.gnucash.org/mailman/listinfo/gnucash-de
>>
>
> _______________________________________________
> gnucash-de mailing list
> gnucash-de at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-de
Mehr Informationen über die Mailingliste gnucash-de