Analyse du fichier journal: extraction de la partie information de la partie valeur

10

J'essaie de créer un ensemble de données sur plusieurs fichiers journaux de l'un de nos produits.

Les différents fichiers journaux ont leur propre mise en page et leur propre contenu; Je les ai regroupés avec succès, il ne reste qu'une étape ...

En effet, les "messages" du journal sont les meilleures informations. Je n'ai pas la liste complète de tous ces messages, et c'est une mauvaise idée de coder en dur sur la base de ceux-ci car cette liste peut changer tous les jours.

Ce que je voudrais faire, c'est séparer le texte d'identification du texte de la valeur (par exemple: "Fichier chargé XXX" devient (identification: "Fichier chargé", valeur: "XXX")). Malheureusement, cet exemple est simple et dans le monde réel, il existe différentes dispositions et parfois plusieurs valeurs.

Je pensais à utiliser des noyaux de chaîne, mais il est destiné au clustering ... et le cluseting n'est pas applicable ici (je ne connais pas le nombre de types de messages différents et même si ce serait trop).

Avez-vous une idée?

Merci de votre aide.

PS: Pour ceux qui programment, cela peut être plus facile à comprendre. Disons que le code contient en tant que logs printf ("blabla% s", "xxx") -> je voudrais que "blabla" et "xxx" soient séparés

Michael Hooreman
la source
Pouvez-vous fournir une sélection représentative d'exemples qui démontrent la variété des éléments que l'algorithme devra analyser?
Emre
2
Il y a cent façons de procéder. Donnez une idée des outils ou du langage dont vous avez besoin pour le faire. Y a-t-il un aspect de science des données à ce sujet? semble être juste une analyse de journal.
Sean Owen

Réponses:

3

Que diriez-vous de considérer chaque chaîne comme une trace de processus et d'appliquer un algorithme alpha? Cela vous donnerait un graphique et des nœuds avec un grand nombre de bords extérieurs pointeraient très probablement vers des valeurs.

Vous pouvez marquer ces nœuds et pour chaque nouvelle chaîne analyser / parcourir le graphique jusqu'à ce que vous atteigniez ces zones.

Juan Leni
la source
Merci beaucoup. Je ne connaissais pas les algorithmes alpha. Je vais vérifier dans cette direction.
Michael Hooreman
2

Cela ne semble pas être un problème de Data Science. Cependant, il existe de très bons outils pour faire exactement cela, checkout: logstash, flume et fluentd. En fait, si vous voulez être en mesure de filtrer Kibana de manière rapide et "intelligente" à partir des gars d'ElastichSearch ( http://www.elasticsearch.org/overview/kibana ). Ces outils sont suffisants pour résoudre votre problème de manière très efficace.

Javierfdr
la source
Je pense cependant que l'extraction de fonctionnalités fait partie de la science des données. Eh bien, ce n'est qu'une opinion ;-) Plus sérieusement, je ne parle pas de fichiers journaux standard faciles, mais de fichiers personnalisés à partir d'un logiciel très spécifique. Donc, c'est vraiment extraire des informations des «phrases» de contexte
Michael Hooreman
1

Si vous essayez simplement de séparer les informations textuelles et numériques, il existe une solution basée sur des expressions régulières ou même simplement sur le fractionnement de chaînes.

Vous pouvez même faire quelque chose comme trouver le premier caractère numérique et diviser le texte en deux juste avant.

Avec les expressions régulières, vous pouvez faire correspondre tous les caractères numériques qui se suivent. Le modèle serait ([0-9]+)avec un drapeau mondial. Cela correspondrait à tous les groupes de nombres et vous pourrez ensuite faire ce que vous voulez avec eux.

Regex Tester est bon pour jouer avec ce genre de choses.

LauriK
la source
Merci Laurik. Malheureusement non seulement les chiffres, et je ne sais pas non plus quels seront les futurs messages. Donc, j'ai vraiment besoin de l'IA.
Michael Hooreman