Я пытаюсь создать набор данных из нескольких файлов журнала одного из наших продуктов.
Различные файлы журналов имеют свой собственный макет и собственный контент; Я успешно сгруппировал их, остался всего один шаг ...
Действительно, журнал «Сообщения» - лучшая информация. У меня нет исчерпывающего списка всех этих сообщений, и это плохая идея - создавать жесткий код, основанный на них, потому что этот список может меняться каждый день.
То, что я хотел бы сделать, это отделить идентификационный текст от текста значения (например: «Загруженный файл XXX» становится (идентификация: «Загруженный файл», значение: «XXX»)). К сожалению, этот пример прост, и в реальном мире существуют разные макеты и иногда несколько значений.
Я думал об использовании строковых ядер, но он предназначен для кластеризации ... и кластеризация здесь не применима (я не знаю количества различных типов сообщений и даже событий, хотя это будет слишком много).
Есть ли у вас какие-либо идеи?
Спасибо за вашу помощь.
PS: для тех, кто программирует, это может быть легче понять. Допустим, что код содержит как журналы printf ("blabla% s", "xxx") -> я бы хотел разделить "blabla" и "xxx"
источник
Ответы:
Как насчет рассмотрения каждой строки как трассировки процесса и применения альфа-алгоритма? Это дало бы вам график, и узлы с большим числом внешних точек, скорее всего, будут указывать на значения.
Вы можете пометить эти узлы и для каждой новой строки анализировать / проходить по графику, пока не дойдете до этих областей.
источник
Это не кажется проблемой Data Science. Тем не менее, есть очень хорошие инструменты для этого: checkst: logstash, flume и fluentd. На самом деле, если вы хотите иметь возможность быстро и «умно» отфильтровать Kibana от ребят из ElastichSearch ( http://www.elasticsearch.org/overview/kibana ). Этих инструментов достаточно, чтобы решить вашу проблему очень эффективно.
источник
Если вы просто пытаетесь разделить текстовую и числовую информацию, то есть решение, основанное на регулярных выражениях или даже просто разделении строк.
Вы можете даже сделать что-то вроде поиска первого числового символа и разделить текст пополам прямо перед этим.
С помощью регулярных выражений вы можете сопоставить все числовые символы, которые следуют друг за другом. Шаблон будет
([0-9]+)
с глобальным флагом. Это будет соответствовать всем группам чисел, и вы сможете потом делать с ними все, что у вас есть.Regex Tester хорош для игры с такими вещами.
источник