Protokolldateianalyse: Extrahieren des Informationsteils aus dem Werteteil

10

Ich versuche, einen Datensatz auf mehreren Protokolldateien eines unserer Produkte zu erstellen.

Die verschiedenen Protokolldateien haben ein eigenes Layout und einen eigenen Inhalt. Ich habe sie erfolgreich gruppiert, nur noch ein Schritt ...

In der Tat sind die Protokoll "Nachrichten" die besten Informationen. Ich habe nicht die umfassende Liste all dieser Nachrichten, und es ist eine schlechte Idee, Code basierend auf diesen zu erstellen, da sich diese Liste jeden Tag ändern kann.

Was ich tun möchte, ist, den Identifikationstext vom Wertetext zu trennen (zum Beispiel: "Geladene Datei XXX" wird (Identifikation: "Geladene Datei", Wert: "XXX")). Leider ist dieses Beispiel einfach und in der realen Welt gibt es unterschiedliche Layouts und manchmal mehrere Werte.

Ich habe über die Verwendung von String-Kerneln nachgedacht, aber es ist für das Clustering gedacht ... und Cluseting ist hier nicht anwendbar (ich kenne die Anzahl der verschiedenen Arten von Nachrichten nicht und obwohl es zu viel wäre).

Hast du irgendeine Idee?

Danke für Ihre Hilfe.

PS: Für diejenigen, die programmieren, kann dies leichter zu verstehen sein. Nehmen wir an, der Code enthält als Protokoll printf ("blabla% s", "xxx") -> Ich möchte "blabla" und "xxx" getrennt haben

Michael Hooreman
quelle
Können Sie eine repräsentative Auswahl von Beispielen bereitstellen, die die Vielfalt der Elemente demonstrieren, die der Algorithmus zum Parsen benötigt?
Emre
2
Es gibt hundert Möglichkeiten, dies zu tun. Geben Sie einen Eindruck davon, in welchen Tools oder in welcher Sprache Sie dies tun müssen. Gibt es einen datenwissenschaftlichen Aspekt? scheint nur eine Protokollanalyse zu sein.
Sean Owen

Antworten:

3

Wie wäre es, wenn Sie jede Zeichenfolge als Prozessablaufverfolgung betrachten und den Alpha-Algorithmus anwenden? Das würde Ihnen ein Diagramm geben und Knoten mit einer großen Anzahl von Außenkanten zeigen höchstwahrscheinlich auf Werte.

Sie können diese Knoten markieren und für jede neue Zeichenfolge das Diagramm analysieren / durchlaufen, bis Sie diese Bereiche erreichen.

Juan Leni
quelle
Vielen Dank. Ich kannte keine Alpha-Algorithmen. Ich werde in diese Richtung prüfen.
Michael Hooreman
2

Dies scheint kein Data Science-Problem zu sein. Es gibt jedoch sehr nette Tools, um genau das zu tun, Checkout: Logstash, Flume und Fluentd. Wenn Sie in der Lage sein möchten, Kibana schnell und "intelligent" zu filtern, sollten Sie Kibana von den Jungs von ElastichSearch ( http://www.elasticsearch.org/overview/kibana ) auschecken . Diese Tools reichen aus, um Ihr Problem auf sehr effiziente Weise zu lösen.

Javierfdr
quelle
Meiner Meinung nach ist die Merkmalsextraktion Teil der Datenwissenschaft. Nun, es ist nur eine Meinung ;-) Im Ernst, ich spreche nicht von einfachen Standard-Protokolldateien, sondern von benutzerdefinierten aus einer ganz bestimmten Software. Das ist also wirklich das Extrahieren von Informationen aus Kontext «Sätzen»
Michael Hooreman
1

Wenn Sie lediglich versuchen, Text- und Zahleninformationen zu trennen, gibt es eine Lösung, die auf regulären Ausdrücken oder sogar nur auf der Aufteilung von Zeichenfolgen basiert.

Sie könnten sogar so etwas wie das erste numerische Zeichen finden und den Text direkt davor in zwei Hälften teilen.

Mit regulären Ausdrücken können Sie alle aufeinander folgenden numerischen Zeichen abgleichen. Das Muster wäre([0-9]+) mit einer globalen Flagge. Es würde mit allen Zahlengruppen übereinstimmen und Sie können danach alles damit machen, was Sie wollen.

Regex Tester ist gut, um mit diesem Zeug herumzuspielen.

LauriK
quelle
Danke Laurik. Leider nicht nur Zahlen, und ich weiß auch nicht, was zukünftige Nachrichten sein werden. Also brauche ich wirklich KI.
Michael Hooreman