Analisi del file di registro: estrazione della parte di informazioni dalla parte di valore


10

Sto cercando di creare un set di dati su diversi file di registro di uno dei nostri prodotti.

I diversi file di registro hanno il loro layout e il loro contenuto; Li ho raggruppati con successo, rimanendo solo un passo ...

In effetti, i "messaggi" di registro sono le migliori informazioni. Non ho un elenco completo di tutti quei messaggi, ed è una cattiva idea codificare in base a quelli perché l'elenco può cambiare ogni giorno.

Quello che vorrei fare è separare il testo di identificazione dal testo del valore (ad esempio: "File caricato XXX" diventa (identificazione: "File caricato", valore: "XXX")). Sfortunatamente, questo esempio è semplice e nel mondo reale ci sono layout diversi e talvolta valori multipli.

Stavo pensando di usare i kernel di stringa, ma è destinato al clustering ... e il clustering non è applicabile qui (non conosco il numero di diversi tipi di messaggi e, anche se, sarebbe troppo).

Hai qualche idea?

Grazie per l'aiuto.

PS: per chi programma, questo può essere più facile da capire. Supponiamo che il codice contenga come log printf ("blabla% s", "xxx") -> Vorrei che "blabla" e "xxx" fossero separati


Potete fornire una selezione rappresentativa di esempi che dimostrano la varietà di elementi che dovranno essere analizzati dall'algoritmo?
Emre,

2
Ci sono centinaia di modi per farlo. Dai un senso di quali strumenti o in quale lingua hai bisogno per farlo. C'è un aspetto della scienza dei dati in questo? sembra solo analizzare il log.
Sean Owen,

Risposte:


3

Che ne dici di considerare ogni stringa come una traccia del processo e applicare l'algoritmo alfa? Ciò ti darebbe un grafico e nodi con un grande numero di contorni che probabilmente indicheranno valori.

È possibile contrassegnare questi nodi e per ogni nuova stringa analizzare / attraversare il grafico fino a raggiungere quelle aree.


Molte grazie. Non conoscevo algoritmi alfa. Controllerò in quella direzione.
Michael Hooreman,

2

Questo non sembra un problema di Data Science. Tuttavia, ci sono strumenti molto belli per fare esattamente questo, checkout: logstash, flume e fluentd. In realtà se vuoi essere in grado di filtrare in modo rapido e "intelligente", controlla Kibana dai ragazzi di ElastichSearch ( http://www.elasticsearch.org/overview/kibana ). Questi strumenti sono sufficienti per risolvere il tuo problema in modo molto efficiente.


Il mio pensiero è che l'estrazione delle funzionalità faccia parte della scienza dei dati. Bene, è solo un'opinione ;-) Più seriamente, non sto parlando di semplici file di registro standard, ma di quelli personalizzati da un software molto specifico. Quindi, questo sta davvero estraendo informazioni dalle «frasi» contestuali
Michael Hooreman,

1

Se stai semplicemente cercando di separare informazioni testuali e numeriche, allora c'è una soluzione basata su espressioni regolari o anche solo sulla suddivisione delle stringhe.

Potresti anche fare qualcosa come trovare il primo carattere numerico e dividere il testo a metà prima di quello.

Con le espressioni regolari puoi abbinare tutti i caratteri numerici che si susseguono. Lo schema sarebbe([0-9]+) con una bandiera globale. Si abbinerebbe a tutti i gruppi di numeri e potrai fare qualsiasi cosa tu con loro in seguito.

Regex Tester è buono per giocare con quella roba.


Grazie Laurik. Purtroppo non solo numeri, e non so anche quali saranno i messaggi futuri. Quindi, ho davvero bisogno dell'IA.
Michael Hooreman,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.