2010-12-27 13 views
3

Ich habe Database mit Tausenden von Reihen von Fehlerprotokollen und ihrer Beschreibung. Dieses Fehlerprotokoll ist für eine Anwendung, die 24/7 läuft. Ich möchte ein Dashboard/eine Benutzeroberfläche erstellen, um die aktuellen häufigen Fehler anzuzeigen, die bei der Unterstützung der Produktion auftreten.Berechnen von Ähnlichkeiten zwischen den Sätzen

Das Problem, das ich habe, ist, dass, obwohl es viele häufige Fehler gibt, die Fehlerbeschreibung unterscheidet sich durch die Transkation ID oder Benutzer-ID oder Dinge, die einzigartig für diese Sigle-Prozess sind.

beispiels Fehler trasaction xyz fehlgeschlagen für Benutzer 233 beispiels 2. Fehler trasaction xyz für Benutzer fehlgeschlagen 567

Ich halte diese beiden erros gleich sein. Ich möchte also ein Programm, das die neuen Fehlerprotokolle durchläuft und sie in Gruppen einteilt. Ich versuche, "Edit distance" zu verwenden, aber es ist sehr langsam. Da ich alraedy alte Fehlerprotokolle habe, versuche ich, an Lösungen zu denken, die diese Information auch verwenden. Irgendwelche Gedanken?

+0

etwas basierend auf soundex könnte hilfreich sein, vielleicht .... –

Antwort

1

Ich gehe davon aus, dass die Fehlermeldungen von einem Programm generiert werden, und so fallen sie wahrscheinlich in sehr spezifische Muster.

Das bedeutet, dass Sie nichts besonders komplexes tun müssen. Parsen Sie einfach die Fehlermeldungen: Verwenden Sie reguläre Ausdrücke (oder vielleicht etwas Stärkeres), um die Nachrichten in Tupel aufzuteilen. Dann gruppiere oder zähle oder tue etwas mit den einzelnen Feldern. Zum Beispiel könnten Sie eine Regex wie "Fehler Transaktion ([A-Z] *) für Benutzer fehlgeschlagen ([0-9] *)". Sie könnten dann ein Histogramm der Fehlercodes (erste Erfassungsgruppe) oder Benutzer (zweite Erfassungsgruppe) erstellen.

+0

Derzeit verwenden wir regulären Ausdruck, aber die Kosten sind sehr groß, so versucht, schnellere Methode zu finden – codecreator

+0

Ich denke, Parsing durch regulären Ausdruck wird etwa so schnell sein wie du bekommen kannst. Ist es das Matching, das eine lange Zeit braucht, oder ist es die Analyse, nachdem Sie geschreddert haben? –

1

Es gibt andere Metriken (außer Levenshtein), die geeigneter sein könnten. Haben Sie Cosine Similarity in Betracht gezogen?

SimMetrics ist eine F/OSS-Bibliothek, die eine umfangreiche Sammlung von similarity algorithms und ihre entsprechenden Kostenfunktionen bietet.

+0

... hat sowohl .NET- als auch Java-Versionen – Mikos

Verwandte Themen