Análisis del archivo de registro: extracción de la parte de información de la parte de valor

10

Estoy tratando de construir un conjunto de datos en varios archivos de registro de uno de nuestros productos.

Los diferentes archivos de registro tienen su propio diseño y contenido; Los agrupé con éxito, solo quedaba un paso ...

De hecho, los "mensajes" de registro son la mejor información. No tengo la lista completa de todos esos mensajes, y es una mala idea codificar en base a ellos porque esa lista puede cambiar todos los días.

Lo que me gustaría hacer es separar el texto de identificación del texto del valor (por ejemplo: "Archivo cargado XXX" se convierte en (identificación: "Archivo cargado", valor: "XXX")). Desafortunadamente, este ejemplo es simple, y en el mundo real hay diferentes diseños y, a veces, múltiples valores.

Estaba pensando en usar núcleos de cadena, pero está destinado a la agrupación en clúster ... y la agrupación en clúster no es aplicable aquí (no sé la cantidad de diferentes tipos de mensajes y, aunque sería demasiado).

¿Tienes alguna idea?

Gracias por tu ayuda.

PD: Para aquellos que programan, esto puede ser más fácil de entender. Digamos que el código contiene como registros printf ("blabla% s", "xxx") -> Me gustaría tener "blabla" y "xxx" separados.

Michael Hooreman
fuente
¿Puede proporcionar una selección representativa de ejemplos que demuestren la variedad de elementos que el algoritmo necesitará analizar?
Emre
2
Hay cien formas de hacer esto. Dé una idea de en qué herramientas o lenguaje necesita hacer esto. ¿Hay algún aspecto de ciencia de datos en esto? parece que solo se analiza el registro.
Sean Owen el

Respuestas:

3

¿Qué hay de considerar cada cadena como una traza del proceso y aplicar un algoritmo alfa? Eso le daría un gráfico y los nodos con un gran número de bordes externos probablemente apuntarán a valores.

Puede marcar estos nodos y para cada nueva cadena analizar / recorrer el gráfico hasta llegar a esas áreas.

Juan leni
fuente
Muchas gracias. No conocía los algoritmos alfa. Comprobaré en esa dirección.
Michael Hooreman
2

Esto no parece un problema de ciencia de datos. Sin embargo, hay herramientas muy buenas para hacer exactamente eso, pagar: logstash, flume y fluentd. En realidad, si desea poder filtrar de forma rápida e "inteligente", consulte Kibana de los chicos de ElastichSearch ( http://www.elasticsearch.org/overview/kibana ). Esas herramientas son suficientes para resolver su problema de una manera muy eficiente.

Javierfdr
fuente
Mi opinión es que la extracción de características es parte de la ciencia de datos. Bueno, es solo una opinión ;-) Más en serio, no estoy hablando de archivos de registro estándar fáciles, sino de archivos personalizados de un software muy específico. Entonces, eso es realmente extraer información del contexto «oraciones»
Michael Hooreman
1

Si simplemente está tratando de separar la información textual y numérica, entonces hay una solución basada en expresiones regulares o incluso simplemente en la división de cadenas.

Incluso podría hacer algo como encontrar el primer carácter numérico y dividir el texto por la mitad justo antes de eso.

Con expresiones regulares, puede hacer coincidir todos los caracteres numéricos que se suceden. El patrón sería ([0-9]+)con una bandera global. Coincidiría con todos los grupos de números y puede hacer lo que quiera con ellos después.

Regex Tester es bueno para jugar con esas cosas.

LauriK
fuente
Gracias Laurik Desafortunadamente, no solo los números, y tampoco sé cuáles serán los mensajes futuros. Entonces, realmente necesito IA.
Michael Hooreman