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.