powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Нетривиальная задача анализа текстовых сообщений
103 сообщений из 103, показаны все 5 страниц
Нетривиальная задача анализа текстовых сообщений
    #40009796
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть небольшая база где собираются сообщения из логов одной энтерпрайзной системы. Это или чистые сообщения (редко) об ошибках или (часто) исключения и java stacktrace. В базе собранны не все сообщения а так сказать только представители каждого типа ошибок. Другими словами если ошибка существует, то за день можно сотни тысяч сообщений в логах поиметь и каждое уникально - меняются id и со своим timestamp, но в базе (в идеале) есть только одна запись. Теперь сама проблема: в какой то момент на радаре появляется новое сообщение и стоит задача, найти наиболее похожие сообщения из уже зарегистрированы в базе. Для этих целей есть некая функция, которая вычисляет степень схожести сообщений. Максимальное значение результата функции - мин длина одного из сообщений. «Очевидное» решение в лоб — сравнить новое сообщение с сообщениями в базе и взять наиболее «схожее» не приводит к желаемому результату по двум причинам. Во первых - медленно, т.к. сравнение схожести имеет сложность O(n * m) где n,m длина сообщений. И шаблонов в базе около 50 тысяч. Вторая причина менее очевидна. Пусть ошибка находится в методе CustomerService.getDeliveryAddress. (Пример надуманный). Этот метод может вызываться из разных мест, в разном контексте. Stacktrace для этого метода вызванный как сервис в контексте JBoss имеет приличную (10+) глубину, и большинство стековых фреймов идентичны с другими ошибками в этом же контексте, т.е. например CustomerService.getAddress вызванным как сервис в JBoss и как следствие эти два сообщения очень «похожи». В то же время та же функция вызванная в каком-нибудь отчёте имеет ту же ошибку но имеет очень отличительный stacktrace и контекст и как результат сравнения «не похожа».
Первый вопрос: как бы вы определяли схожесть сообщений?
Моё понимание проблемы - не все строчки сообщений имеют одинаковую значимость для сравнения. Как следствие подзадача вычислить или строчки, которые «уникальны» или вычислить строчки которые «шумят».
Второй вопрос: как бы вы выделили эти «значимые/шумовые» строчки в сообщениях.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40009802
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут надо на формат сообщений смотреть. Как вариант, если можно почистить сообщение так чтобы его начало было постоянным, то тогда по индексу можно искать с наибольшим совпадающим началом.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40009809
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и второй вариант - использовать полнотекстовый поиск, искать сообщение где больше слов слов совпадет. Посложнее, но не полный перебор.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40009830
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron
Первый вопрос: как бы вы определяли схожесть сообщений?

Никак. Каждое сообщение заносится в багтрекер как есть и система сбора телеметрии блокируется до его исправления.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40009886
Очевидно, нужно смотреть на структуру сообщений, пока что не очень всё понятно. Самое универсальное (и самое трудозатратное в реализации) решение, которое тут можно придумать выглядит примерно так. Пытаемся определить структуру каждого типа лога, потом каждый лог парсим в "синтаксическое дерево". Потом деревья и сравниваем. Соответственно, для разных типов деревьев применяются разные сравнения. В вашем примере, мы при сравнении логов JBoss сравниваем те ветви дерева, которые отображают стектрейс, но не метод, вызванный в сервисе. А при сравнении лога сервиса с логом отчетов, сравниваем тип ошибки, но не обращаем внимания на стектрейс и контекст. Ну и т.д.
В зависимости от вашей конкретной ситуации решение может упроститься до выпаршивания из лога меток, отвечающих за тип лога и ошибки и их сравнения.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40009890
mikron

Второй вопрос: как бы вы выделили эти «значимые/шумовые» строчки в сообщениях.

Мы то откуда знаем, не видя ваши логи, что у вас значимо, а что нет?
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40009922
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Тут надо на формат сообщений смотреть. Как вариант, если можно почистить сообщение так чтобы его начало было постоянным, то тогда по индексу можно искать с наибольшим совпадающим началом.


Почистить сообщение в общем случае это как-раз то в каком направлении я думаю. Но как чистить тут и есть самый ключевой момент. Я предпологаю расчитать что есть муссор. Просто выделить верхние фреймы (или начало собщений) не всегда даст желаемый результат т.к. текствое сообщение и текст исключения параметризованы. т.е. будут отличатся
SomeAppException: Unable detect delivery address for customer XXXXXXX XXXXXXX / order #### on May 12 2020.
SomeAppException: Unable detect delivery address for customer YYYYY YYYYY YYYYY YYYYY / oder ##### on Dec 21 2019.

А последующие 2 строчки stecktrace идентичны.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40009923
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Ну и второй вариант - использовать полнотекстовый поиск, искать сообщение где больше слов слов совпадет. Посложнее, но не полный перебор.


А это ни чем не лутче первого варианта.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40009982
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь
mikron

Второй вопрос: как бы вы выделили эти «значимые/шумовые» строчки в сообщениях.

Мы то откуда знаем, не видя ваши логи, что у вас значимо, а что нет?


В том и дело, что решение должно быть универсальным. Я тоже не могу просматривать все сообщения и определять что в каждом из них значимо. И даже склоняюсь к мнению, человек без опыта не сможет выделить значимую часть, значит только статистика может дать ответ на этот вопрос.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40009997
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron
Dima T
Ну и второй вариант - использовать полнотекстовый поиск, искать сообщение где больше слов слов совпадет. Посложнее, но не полный перебор.


А это ни чем не лутче первого варианта.

Это на случай когда первый вариант невозможен.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010016
mikron
SomeAppException: Unable detect delivery address for customer XXXXXXX XXXXXXX / order #### on May 12 2020.
SomeAppException: Unable detect delivery address for customer YYYYY YYYYY YYYYY YYYYY / oder ##### on Dec 21 2019.

вы что их прямо так и держите в БД?
они же типовые у вас все, как я понял (и вижу)
ну так справочники юзайте, накой ляд так базу нагружать?
exception = err_t
Unable detect delivery address for customer = msg_t
получится как-то так:
1 | 1 | XXXXXXX XXXXXXX / order #### on May 12 2020

далее, если дата в каждом сообщении, её тоже в отдельную колонку с типом date
order #### - тоже, если можно.
при такой архитектуре их совсем просто найти будет
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010021
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза,

Вы не поняли совсем. Перечитайте внимательно самое первое сообщение.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010024
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... если Kibana с этим не справилась то наверное эта постановка выходит далеко за рамки анализа логов.

Надо-бы в студию образец такого сообщения. Я думаю и тогда у нас мысли появятся как искать "значимые
и шумовые" строчки.

Похожесть можно вычислять по разному. Тут и Левенштейн. И декартово расстояние между ключевыми словами
и частотами. И бит-карта Блума.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010028
mikron
Алексей Роза,

Вы не поняли совсем. Перечитайте внимательно самое первое сообщение.

всё прочитано и понято именно так, как написано.
Там именно то, что я написал. Также и в примере вашем именно это.
Значит вы либо в примере выдали левак, либо мысль доносить не умеете и сбиваете с толку.
Показывайте конкретно, где у вас там "не так".
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010035
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Вы хитрец, подливаете масла. Кибану оставим в покое — она из другой оперы.
Давайте разберём методы оценки схожести. Но прежде вопрос.
вы считаете что метод оценки схожести безотносителен к статистике шаблонных сообщений?
Другими словами, оценка схожести двух сообщений есть функция двух переменных и независит от всего набора шаблонных сообщений? Я правильно понял?
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010083
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не знаю. Я пока мало понимаю вашу проблему.

Покажите образец лога и что надо найти.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010095
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

показать настоящий лог я не могу, могу только напеть. И потом, одного сообщения будет недостаточно.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010097
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

что надо найти.


Первый вопрос: как бы вы определяли схожесть сообщений?
Второй вопрос: как бы вы выделили эти «значимые/шумовые» строчки в сообщениях?
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010101
Как я вижу эту тему.
ТС: Хочу найти то, не знаю что. Как это искать и где?
Участники темы: Так мы же не знаем, что ты ищешь, может расскажешь нам, что тебе нужно?
ТС: Я не знаю. Но вы мне скажите, как искать и где?
Участники: Так а что ищешь то?
ТС: Не могу сказать. Но как искать, и где?
...
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010102
mikron

показать настоящий лог я не могу, могу только напеть. И потом, одного сообщения будет недостаточно.

Обфусцируйте и покажите. Без этого какой либо содержательный совет дать вам невозможно, сколько бы раз вы свои вопросы не повторяли.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010114
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь,

Мои вопросы возможно не всем доступны но вполне конкретны - как бы вы определяли схожесть сообщений?
Какой ваш ответ?
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010138
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

имеем:
1.) набор P из ~50K "разнотипных" сообщений - представители каждого типа сообщений.
2.) сообщение M, про которое ничего не известно заранее.

Hайти:
Наиболее "схожие" сообщение из набора (1) в порядке убывания схожести.
Или другими словами определить функцию схожести S(M, Pi), для 0 < i < N.

Простор для полёта мысли не ограничен. Предлагайте, я могу опробовать и сообщу о результатах.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010145
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я понял. По смыслу это похоже на кластеризацию векторов с автоматическим
выделением новых центров в признаках. Тоесть мы не задаём жестко N
центров а просто ищем следующий вектор который наиболее ДАЛЕКО остоит
от N уже известных.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010150
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нам нужен образец логов. Хотя-бы 3 разных месседжа. Понимаю что у тебя NDA и все такое. Но дальше не двинемся никуда
без семплов.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010154
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron
Я тоже не могу просматривать все сообщения и определять что в каждом из них значимо.

А почему, собственно? Прочитал сообщение, увидел, что оно незначимо - пошёл и убрал его вывод из модуля, чтобы в логе оно больше никогда не появлялось. Обычная работа программиста.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010156
я полагаю потому, что у него там тот ещё бардак и месиво
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010158
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
mikron
Я тоже не могу просматривать все сообщения и определять что в каждом из них значимо.

А почему, собственно? Прочитал сообщение, увидел, что оно незначимо - пошёл и убрал его вывод из модуля, чтобы в логе оно больше никогда не появлялось. Обычная работа программиста.

Скорее всего там - анализ того что случилось post-mortem. Тоесть убрать сообщние на будущее - это какой-то
change-request но он не помогает решать текущий дефект.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010160
mikron

Мои вопросы возможно не всем доступны но вполне конкретны - как бы вы определяли схожесть сообщений?
Какой ваш ответ?

Я уже ответил на него в первом моем комментарии в этой теме. Ничего более конкретного сказать не могу, потому что вы не хотите давать дополнительных данных о вашей задаче. И, как мы видим, не я один хочу конкретику. Так что или выдавайте, или так и будете со стеной разговаривать.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010177
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
habrГруппировка ошибок
И ещё один процесс, которому следует уделить внимание, — группировка ошибок. От неё зависит, как быстро вы сможете обнаруживать наиболее критичные ошибки среди всех остальных событий.

Человек, не знакомый с тем, как устроены системы обработки ошибок, может подумать, что в них используются какие-то сложные алгоритмы для определения схожести строк. Но в действительности все популярные системы используют группировку по ключу (fingerprint), потому что это просто в реализации и покрывает большинство кейсов.
https://habr.com/ru/company/badoo/blog/522600
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010189
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Группировка по ключу не будет работать если месседж об ошибке содержит уникальный параметр
(timestamp, sequemce, UUID) и тогда нужно сворачивать в вектор текстовых токенов как я предлагаю.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010201
параметр не решает, там все сообщения по типам
как он пишет: они одинаковые по сути, только по времени разные
так что их запросто можно по типу группировать.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010203
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лучше 1 раз увидеть.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010222
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron, скажу нелицеприятно и прямолинейно.

Статистика сама ничего не выявит. Ей надо знать, что важно выявлять. Ей мало формальных закорючек. Ей нужна и семантика закорючек. Как пример см. "факторный анализ".

Если вам нужно универсальное решение (а в каких пределах универсальное?). И вам хочется сферической близости , однако тоже универсальной. Тогда вся теория неровных сеток, распознавания образов, нечётких множеств и статистики к вашим услугам в полном объёме. Выбирайте сами что и как оттуда взять и как настроить.
В частности опробуйте Кохонена для автоматического выделения кластеров с заранее неизвестным кол-вом кластеров. Только её как-то поучить придётся на представительном объёме логов (в сферическом случае до 1/3 от всех логов). Но для этого логи вам придётся почитать лично. В конце-концов м.б. сетка сообразит чего вы от неё хотите. Увы вам, сеткам тоже трэба семантики.

Ещё можете попробовать нечто, что скрывается внутри тындекса. Читайте основы. Например метод LSA.

Наконец, вопрос, к-рый ещё никто не задал: "Ужели у вас там в Germany / Stuttga совсем плохо со спецами, вкл. вас лично, коли вы здесь спрашиваете и не можете пояснить компетентно заданные встречные вопросы?"

P.S. На самом деле ничего противо личного не имею. Написал исключительно о вашей компетенции.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010247
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Нам нужен образец логов. Хотя-бы 3 разных месседжа. Понимаю что у тебя NDA и все такое. Но дальше не двинемся никуда
без семплов.


Я их показать не могу . Без вариантов. Поверьте мне на слово что, 3 сообщения не дадут даже 1% всей картины.
А если так, то давайте рассматривать любой произвольный лог какой-нибудь большой системы и попытаться
на нём выделить кластеры. И, да, правильно, проблема кластеризации, но вопрос здесь не в том, как выделить кластеры,
а в том как мерить расстояния.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010251
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
mikron
Я тоже не могу просматривать все сообщения и определять что в каждом из них значимо.

А почему, собственно? Прочитал сообщение, увидел, что оно незначимо - пошёл и убрал его вывод из модуля, чтобы в логе оно больше никогда не появлялось. Обычная работа программиста.

Причин много: 1. их очень много. за день более 6 ГБ. 2. во вторых, я не могу менять сообщения. 3. они меняются сами со временем. 4. То что было неважно вчера может быть важно сегодня.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010255
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я понял. По смыслу это похоже на кластеризацию векторов с автоматическим
выделением новых центров в признаках. Тоесть мы не задаём жестко N
центров а просто ищем следующий вектор который наиболее ДАЛЕКО остоит
от N уже известных.


Нет, не совсем. Мы не ищем вектор, мы пытаемся динамически определить является ли новый полученный вектор членом одного из известных кластеров или выступает членом нового.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010258
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
я полагаю потому, что у него там тот ещё бардак и месиво

Всё так и даже хуже.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010264
mikron
Алексей Роза
я полагаю потому, что у него там тот ещё бардак и месиво

Всё так и даже хуже.

ну так у вас же своя выделенная БД, которая эти логи агрегирует (ах если бы)
она же для этого и нужна, чтобы делать всё что захочешь для их анализа
и агрегировать, оптимизировать, типизировать и т.д.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010265
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
параметр не решает, там все сообщения по типам
как он пишет: они одинаковые по сути, только по времени разные
так что их запросто можно по типу группировать.


Что то вы не так поняли. Пример здесь 22216923

Тип сообщения может быть одинаковый, но сколько в нём параметров я не знаю.
Другими словами мне не известен шаблон для формата "Unable detect delivery address for customer %s / oder %s on %s."
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010266
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mikron
пропущено...

Всё так и даже хуже.

ну так у вас же своя выделенная БД, которая эти логи агрегирует (ах если бы)
она же для этого и нужна, чтобы делать всё что захочешь для их анализа
и агрегировать, оптимизировать, типизировать и т.д.


У вас богатое воображение.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010269
1) Разбиваем лог на лексемы
2) Считаем количество каждой лексемы в логе
3) Полученные много-много мерные векторы и кластеризуем.
4) Когда кластеризовали, при получении нового лога пытаемся определить в ближайший кластер. Если ни в один не влезает, значит родился новый кластер.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010270
В этом случае вы также увидите, что в определенной группе логов одни лексемы часто встречаются, а другие нет. Это и будут кластеры, и по этому признаку можно будет и новые логи определять. Ну и мусорные лексемы, которые незначимы для определения типа тоже увидите. Их можно будет выкидывать.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010272
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98,
и тем не менее вы переходите на личности. Какая вам разница, и какое это имеет отношение к вопросу, где я, как у меня со специалистами? Если я для вас не компетентен - проходите мимо. От вас я ответа не заметил.
Может я чего упустил, повторите пожалуйста "компетентно заданные встречные вопросы".
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010276
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron
mayton
Нам нужен образец логов. Хотя-бы 3 разных месседжа. Понимаю что у тебя NDA и все такое. Но дальше не двинемся никуда
без семплов.


Я их показать не могу . Без вариантов. Поверьте мне на слово что, 3 сообщения не дадут даже 1% всей картины.
А если так, то давайте рассматривать любой произвольный лог какой-нибудь большой системы и попытаться
на нём выделить кластеры. И, да, правильно, проблема кластеризации, но вопрос здесь не в том, как выделить кластеры,
а в том как мерить расстояния.

Блин. Ты заставляешь меня идти на преступление... Выкладывать СВОИ тестовые данные и выдавать из за твои!

Ну представь какой уровень натяжки получается. Я - с твоих слов создал тестовые данные!
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010278
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь
В этом случае вы также увидите, что в определенной группе логов одни лексемы часто встречаются, а другие нет. Это и будут кластеры, и по этому признаку можно будет и новые логи определять. Ну и мусорные лексемы, которые незначимы для определения типа тоже увидите. Их можно будет выкидывать.

Я-бы из логов сразу выкидывал isoDateTime, UUID, и прочее.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010279
mikron
Алексей Роза
пропущено...

ну так у вас же своя выделенная БД, которая эти логи агрегирует (ах если бы)
она же для этого и нужна, чтобы делать всё что захочешь для их анализа
и агрегировать, оптимизировать, типизировать и т.д.


У вас богатое воображение.

И это прекрасно Однако оно к данной теме отношения не имеет, вот ваши слова:
mikron
Есть небольшая база где собираются сообщения из логов одной энтерпрайзной системы.

отдельная база, где агрегируются данные, сам бох велел их крутить-вертеть, чтобы удобнее было аналитить.

mikron
Алексей Роза
параметр не решает, там все сообщения по типам
как он пишет: они одинаковые по сути, только по времени разные
так что их запросто можно по типу группировать.


Что то вы не так поняли. Пример здесь 22216923

Тип сообщения может быть одинаковый, но сколько в нём параметров я не знаю.
Другими словами мне не известен шаблон для формата "Unable detect delivery address for customer %s / oder %s on %s."

И снова я всё понял именно так, как написано.
Вот! мы уже пришли к тому, что ТИП у них одинаковый. А я об этом ещё на прошлой странице писал и тоже был "не так понят".
Вам и не надо знать весь шаблон. Если у вас есть много сообщений с "Unable detect delivery address for customer", и ещё много с другими словами, и много с другими, то это всё уже делится по типам.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010280
mayton

Я-бы из логов сразу выкидывал isoDateTime, UUID, и прочее.

Ну да, что то такое очевидное сразу можно выкинуть.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010281
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь

1) Разбиваем лог на лексемы
2) Считаем количество каждой лексемы в логе

Я даже думаю что для задачи автора веса или частоты лексемы не имеют значения. Можно просто Set[String]
а потом свернуть это до биткарты.

И функция расстояния будет - расстоянием Хемминга. Это упрощает расчет групп или кластеризацию.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010282
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mikron
У вас богатое воображение.

И это прекрасно Однако оно к данной теме отношения не имеет, вот ваши слова:
mikron
Есть небольшая база где собираются сообщения из логов одной энтерпрайзной системы.

отдельная база, где агрегируются данные, сам бох велел их крутить-вертеть, чтобы удобнее было аналитить.

Цитируйте полностью, в том-же посте.
mikron
В базе собранны не все сообщения а так сказать только представители каждого типа ошибок.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010284
mikron

mikron
В базе собранны не все сообщения а так сказать только представители каждого типа ошибок.

Ну так вам это и надо. Проанализировать, как выглядят сообщения разных типов. Разве нет?
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010286
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Алексей Роза#22217734]
mikron

mikron
параметр не решает, там все сообщения по типам
как он пишет: они одинаковые по сути, только по времени разные
так что их запросто можно по типу группировать.


Что то вы не так поняли. Пример здесь 22216923

Тип сообщения может быть одинаковый, но сколько в нём параметров я не знаю.
Другими словами мне не известен шаблон для формата "Unable detect delivery address for customer %s / oder %s on %s."

И снова я всё понял именно так, как написано.
Вот! мы уже пришли к тому, что ТИП у них одинаковый.


Вы не правы с утверждением "как он пишет: они одинаковые по сути, только по времени разные"
Я этого не говорил и пример привёл показать что они отличаются не только по времени.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010302
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron
exp98,....От вас я ответа не заметил. Может я чего упустил, повторите пожалуйста "компетентно заданные встречные вопросы".
Ответа покашто вы ни от кого не получили. Получили вопросы и предложения. В т.ч. предложение и от меня.
Угу, упустили. Перечтите внимательно мой первый пост. "Встречные вопросы" -- их полторы предшествовавших страницы.

О компетентности. Здесь вам отвечали, достаточно компетентно. Неудивительно, что они интересовались сходными деталями. Только почему-то вас волнует с нашей т.зр пустяк - некая метрика,их море. Но это дело техники. А вам надо сосредоточиться на отборе семантики. Вам описывают один из методов. Только вам знать важные закорючки. Сами по себе кластеры ситуативны, если за ними не стоит семантика.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010314
mikron
Цитируйте полностью, в том-же посте.
mikron
В базе собранны не все сообщения а так сказать только представители каждого типа ошибок.

да не смешите! 6 гб это у вас всё разные типы ошибок, ага.
mikron
Вы не правы с утверждением "как он пишет: они одинаковые по сути, только по времени разные"
Я этого не говорил и пример привёл показать что они отличаются не только по времени.

тем не менее, типизировать и группировать их всё ещё можно и нужно.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010322
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь

1) Разбиваем лог на лексемы
2) Считаем количество каждой лексемы в логе
3) Полученные много-много мерные векторы и кластеризуем.
4) Когда кластеризовали, при получении нового лога пытаемся определить в ближайший кластер. Если ни в один не влезает, значит родился новый кластер.

1) что есть лексема в нашем случае?
2) не понятно как понимать «в логе»? в сообщении?
3) как строится ваш вектор, что есть элементы вектора?
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010326
1) Отдельные слова и значения
2) В сообщении
3) Значение на i позиции в векторе - количество лексем i в сообщении. Как заметил mayton, вам возможно хватит просто значений 0/1 - лексема есть или нет в логе.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010327
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я-бы из логов сразу выкидывал isoDateTime, UUID, и прочее.

В сообщениях часто мелькают числовые id. Была идея выбрасывать все числа, но представьте java stacktrace, в конце стоит номер строки, а этот номер важен для идентификации.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010335
mikron

В сообщениях часто мелькают числовые id. Была идея выбрасывать все числа, но представьте java stacktrace, в конце стоит номер строки, а этот номер важен для идентификации.

И тут мы снова возвращаемся к тому, что нужно анализировать сообщения, которые у вас есть, а не пытаться придумать "универсальный" метод. О чем вам уже втолковывают третью страницу.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010338
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ржавый гвоздь

1) Разбиваем лог на лексемы
2) Считаем количество каждой лексемы в логе

Я даже думаю что для задачи автора веса или частоты лексемы не имеют значения. Можно просто Set[String]
а потом свернуть это до биткарты.

И функция расстояния будет - расстоянием Хемминга. Это упрощает расчет групп или кластеризацию.

Это не работает. Пусть мы разбили сообщение на лексемы L99,L5,L4,L3,L2,L1.
И пусть у нас есть следующие кластеры:
L40,L5,L4,L3,L2,L1
L30,L5,L4,L3,L2,L1
L20,L5,L4,L3,L2,L1
........
L99,L98

Результатом/мин расстояние будут все кластеры L40,L30,L20. Но не L99,L98.

Представте глубокий stacktrace на JBoss и станет понятно о чём я.
А минимальный кластер это метод в отдельном потоке Future.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010340
Значит нужно выкинуть лексемы L5,L4,L3,L2,L1, раз они не позволяют разделять кластеры, которые нужно разделить.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010341
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь

И тут мы снова возвращаемся к тому, что нужно анализировать сообщения, которые у вас есть, а не пытаться придумать "универсальный" метод. О чем вам уже втолковывают третью страницу.

Это не значит что такого метода нет, а только то что здесь отметившиеся его не знают.
упростив задачу вы примете некоторые premises и сможете решить её только для конкретного набора сообщений.
Если завтра появится сообщение которое нарушает ваши premises то всё решение можно выбрасывать.
Поэтому я бы не торопился с любыми предположениями относительно сообщений.
В чём я более-менее уверен: семантическая единица - строка сообщения. Порядок семантических единиц важен.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010343
Ну удачи вам в поиске волшебной кнопки алгоритма, который сразу сделает хорошо
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010344
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь
Значит нужно выкинуть лексемы L5,L4,L3,L2,L1, раз они не позволяют разделять кластеры, которые нужно разделить.

Того-же мнения.
mikron
Как следствие подзадача вычислить или строчки, которые «уникальны» или вычислить строчки которые «шумят».
Второй вопрос: как бы вы выделили эти «значимые/шумовые» строчки в сообщениях.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010346
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверняка среди лексем есть много причинно-следственных зависимостей. Имею ввиду иерархическое описание, т.е. графы, кусты отдельно стоящих деревьев ...

В силу этого Хэмминг не годится. На сферическом графе мне видится сферическая графовая метрика . Она же отражает прич-следств связи. Поскольку некие лексемы м.б. коммутативны, нек-рые транзитивны, другие ассоциативны и т.д. Наверняка, скажем, время Т может стоять не только в начале, но и в середине и т.п., а означать разную семантику. И тогда расстояние типа Левенштейна тоже неадекватно (оно для эволюции цепочек генома).

Я бы посмотрел гистограмму " методом частых множеств ". По ним по крайней мере часть графа можно строить автоматически.
Часть есть в шаблонах (как я понял) - их расшифровать наверное руками.
А остальное придётся вводить умозрительно. И я не читал всё, справочник типов лексем можно создать. Потом в случае вопросов сюда примеры деревьев (глисту нуклеатидов такую Г-Т-А-Г-Г-А- ...).

Навернка есть что-то типа "приложение.модуль.функция.метод"
По-моему из того, что уже было, добавиьт нечего. Пора собирать статистику и строить графы.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010347
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько мыслей.

1. В данной задаче есть элемент обучения. Это связанно с тем что у нас есть учебная выборка.
Это все месседжи лога которые были приняты "до того". Или до некого условного времени t.

2. В данной задаче есть некое устойчивое состояние кластеров (количеством N) уже известных
месседжей которые уже были приняты до времени t.

3. Есть контрольная точка времени t.
После которой мы пускаем систему в режим продолжения обнаружения
кластеров. И если после времени t мы получаем новое сообщение которое НЕ КЛАССИФИЦИРУЕТСЯ. Или оно
слишком не похоже на уже известные кластеры из N типов сообщений.

Почему я акцентирую внимание на времени до и после?
Потому что продуктовые системы - это обычно системы реального времени и у нас нет
возможности сказать stop the world или каким-то образом приостановить их работу.
Единственное что мы можем - это указать на оси времени некие точки фиксации
чтобы разделить учебную выборку от контрольной.

Если терминология непонятна - то можно учебную и контрольную выкинуть и просто заменить на периоды
каких то других времен.

Не исключено что в процессе работы количество кластеров будет расти что само по себе плохо.
Т.к. новые кластера ухудшают избирательность системы и их надо будет чистить.

Тоесть делать сброс системы в некое нулевое состояние с очисткой логов. (это наподобие log-rotate
или архивирования старых логов за ненадобностью).
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010348
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку микрон нам так и не дал логов. Давайте взглянем на сферический лог в вакууме.

Не спрашивайте что он делает. Он не делает ничего. Это пустое приложение фреймворка Axon. В нем нет
бизнес-логики и вообще нет ничего. Это проба.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
020-10-20 22:02:27.630  INFO 19326 --- [           main] DeferredRepositoryInitializationListener : Triggering deferred initialization of Spring Data repositories…
2020-10-20 22:02:27.631  INFO 19326 --- [           main] DeferredRepositoryInitializationListener : Spring Data repositories initialized!
2020-10-20 22:02:27.648  INFO 19326 --- [           main] m.s.axon.probeaxon.ProbeAxonApplication  : Started ProbeAxonApplication in 4.399 seconds (JVM running for 4.877)
Hibernate: select tokenentry0_.segment as col_0_0_ from token_entry tokenentry0_ where tokenentry0_.processor_name=? order by tokenentry0_.segment ASC
Hibernate: select tokenentry0_.processor_name as processo1_2_0_, tokenentry0_.segment as segment2_2_0_, tokenentry0_.owner as owner3_2_0_, tokenentry0_.timestamp as timestam4_2_0_, tokenentry0_.token as token5_2_0_, tokenentry0_.token_type as token_ty6_2_0_ from token_entry tokenentry0_ where tokenentry0_.processor_name=? and tokenentry0_.segment=? for update
Hibernate: update token_entry set owner=?, timestamp=?, token=?, token_type=? where processor_name=? and segment=?
Hibernate: select tokenentry0_.segment as col_0_0_ from token_entry tokenentry0_ where tokenentry0_.processor_name=? order by tokenentry0_.segment ASC
2020-10-20 22:02:27.679  INFO 19326 --- [beaxon.query]-0] o.a.e.TrackingEventProcessor             : Worker assigned to segment Segment[0/0] for processing
2020-10-20 22:02:27.685  INFO 19326 --- [beaxon.query]-0] o.a.e.TrackingEventProcessor             : Using current Thread for last segment worker: TrackingSegmentWorker{processor=mayton.spring.axon.probeaxon.query, segment=Segment[0/0]}
Hibernate: select tokenentry0_.processor_name as processo1_2_0_, tokenentry0_.segment as segment2_2_0_, tokenentry0_.owner as owner3_2_0_, tokenentry0_.timestamp as timestam4_2_0_, tokenentry0_.token as token5_2_0_, tokenentry0_.token_type as token_ty6_2_0_ from token_entry tokenentry0_ where tokenentry0_.processor_name=? and tokenentry0_.segment=? for update
Hibernate: update token_entry set owner=?, timestamp=?, token=?, token_type=? where processor_name=? and segment=?
2020-10-20 22:02:27.689  INFO 19326 --- [beaxon.query]-0] o.a.e.TrackingEventProcessor             : Fetched token: null for segment: Segment[0/0]
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
^C2020-10-20 22:02:44.452  INFO 19326 --- [nPool-worker-19] o.a.e.TrackingEventProcessor             : Shutdown state set for Processor 'mayton.spring.axon.probeaxon.query'.
2020-10-20 22:02:44.452  INFO 19326 --- [nPool-worker-19] o.a.e.TrackingEventProcessor             : Processor 'mayton.spring.axon.probeaxon.query' awaiting termination...
Hibernate: update token_entry set timestamp=? where processor_name=? and segment=? and owner=?
Hibernate: update token_entry set owner=null where owner=? and processor_name=? and segment=?
2020-10-20 22:02:44.932  INFO 19326 --- [beaxon.query]-0] o.a.e.TrackingEventProcessor             : Released claim
2020-10-20 22:02:44.934  INFO 19326 --- [beaxon.query]-0] o.a.e.TrackingEventProcessor             : Worker for segment Segment[0/0] stopped.
2020-10-20 22:02:44.967  INFO 19326 --- [extShutdownHook] i.a.a.c.query.impl.QueryChannelImpl      : QueryChannel connected, 0 registrations resubscribed
2020-10-20 22:02:44.969  INFO 19326 --- [extShutdownHook] i.a.a.c.command.impl.CommandChannelImpl  : Unregistered handler for command mayton.spring.axon.probeaxon.command.DeselectFoodCardCommand
2020-10-20 22:02:44.970  INFO 19326 --- [extShutdownHook] i.a.a.c.command.impl.CommandChannelImpl  : Unregistered handler for command mayton.spring.axon.probeaxon.command.CreateFoodCardCommand
2020-10-20 22:02:44.971  INFO 19326 --- [extShutdownHook] i.a.a.c.command.impl.CommandChannelImpl  : Unregistered handler for command mayton.spring.axon.probeaxon.command.SelectFoodCardCommand
2020-10-20 22:02:45.170  INFO 19326 --- [extShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default'
2020-10-20 22:02:45.173  INFO 19326 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'
2020-10-20 22:02:45.174  INFO 19326 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown initiated...
2020-10-20 22:02:45.185  INFO 19326 --- [extShutdownHook] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Shutdown completed.



Что бросается в глаза?

1) Шумящие метки времени. Их надо убрать из обработки. Вот это.
Код: sql
1.
2020-10-20 22:02:45.185 


2) Уровни. Что собирать? ERROR? Или WARN/INFO/DEBUG/TRACE? Я думаю надо собирать все но еще умножить количество
кластеров на уровни.

3) Есть проблема в разном формате сообщений.
Тут видно что собщения от ORM отпечатались в другой логгер-аппендер
и поэтому имеют формат различный с основным логом.

Сразу от меня возникает предложение либо привести все эти несоотвествия к единому формату. Либо писать в отдельный
файловый appender (JSON)-подобного вида для упрощения задачи.

По поводу Log4j2/SLf4j/JUL/JCL я подниму отдельный топик. Я думаю что не я один бодался с зоопарком логгеров. И не я
один пытался унифицировать процесс старта и конфигурирования зоопарков.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010355
mayton
привести все эти несоотвествия к единому формату

this.
при этом ещё и разбить на отдельные колонки по типам разных кусков
а вообще неплохо бы сначала определиться, а что мы хотим таки получить...
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010358
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это к микрону.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010367
да к нему бесполезно, чел плотно подсел на телепатию.
у тебя пример абстрактный, ну вот я абстрактно говорю, что всё есть, осталось только понять, что надо.
и уже от этого плясать.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010368
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я - с твоих слов создал тестовые данные!


И это прекрасно, Вирджиния. :)
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010370
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
да к нему бесполезно, чел плотно подсел на телепатию.
у тебя пример абстрактный, ну вот я абстрактно говорю, что всё есть, осталось только понять, что надо.
и уже от этого плясать.

Вот у меня конкретный лог.

Были унылые сообщения. Я классифицировал их как центр кластера. Видите? Они почти одинаковы?

Код: sql
1.
2.
3.
2020-10-20 22:02:44.969  INFO 19326 --- [extShutdownHook] i.a.a.c.command.impl.CommandChannelImpl  : Unregistered handler for command mayton.spring.axon.probeaxon.command.DeselectFoodCardCommand
2020-10-20 22:02:44.970  INFO 19326 --- [extShutdownHook] i.a.a.c.command.impl.CommandChannelImpl  : Unregistered handler for command mayton.spring.axon.probeaxon.command.CreateFoodCardCommand
2020-10-20 22:02:44.971  INFO 19326 --- [extShutdownHook] i.a.a.c.command.impl.CommandChannelImpl  : Unregistered handler for command mayton.spring.axon.probeaxon.command.SelectFoodCardCommand


И все другие также попадают в известные кластеры.

Внезапно (!) прилетает новое сообщение. И оно - не классифицируется. И mikron получает на почту алёрт
с красным лопухом. "Shutting down ...." e.t.c.

Код: sql
1.
2020-10-20 22:02:45.173  INFO 19326 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'



Вот так я себе понимаю проблему топика.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010371
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Поскольку микрон нам так и не дал логов. Давайте взглянем на сферический лог в вакууме.

Этот лог весь информативный. Он ни о чём. Давайте лучше взглянем на какой нибудь публичный багтраккер где есть сообщения из логов и взглянем на те тикеты которые закрыты как дубликаты.
Представим задачу так, приходит багрепорт, который содержит только сообщение об ошибке из лога.
И задача определить - это новый кейс или уже известный.
И как в реальном мире, ответ не просто да/нет а величина, которая отражает степень «схожести».
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010373
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron
mayton
Поскольку микрон нам так и не дал логов. Давайте взглянем на сферический лог в вакууме.

Этот лог весь информативный. Он ни о чём. Давайте лучше взглянем на какой нибудь публичный багтраккер где есть сообщения из логов и взглянем на те тикеты которые закрыты как дубликаты.

Я щас буду ругаться. Я тебя просил найти любой лог? Просил. Ты предоставил?
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010376
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я щас буду ругаться. Я тебя просил найти любой лог? Просил. Ты предоставил?

Хорошо, хорошо. Только постав лог левел в ERROR. Это справедливо, реч шла с самого начало об ошибках. Б)
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010377
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Завтра поищу. Покедова.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010428
Я валяюсь с этой темы Автору нужен "нетривиальный анализ", но он предлагает помогающим самим лазить по гитхабам в поисках тестовых данных для его задачи... Шта? Троллинг такой троллинг. И охота вам нянчиться с этим?
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010437
mayton
Алексей Роза
да к нему бесполезно, чел плотно подсел на телепатию.
у тебя пример абстрактный, ну вот я абстрактно говорю, что всё есть, осталось только понять, что надо.
и уже от этого плясать.

Вот у меня конкретный лог.

Были унылые сообщения. Я классифицировал их как центр кластера. Видите? Они почти одинаковы?

Код: sql
1.
2.
3.
2020-10-20 22:02:44.969  INFO 19326 --- [extShutdownHook] i.a.a.c.command.impl.CommandChannelImpl  : Unregistered handler for command mayton.spring.axon.probeaxon.command.DeselectFoodCardCommand
2020-10-20 22:02:44.970  INFO 19326 --- [extShutdownHook] i.a.a.c.command.impl.CommandChannelImpl  : Unregistered handler for command mayton.spring.axon.probeaxon.command.CreateFoodCardCommand
2020-10-20 22:02:44.971  INFO 19326 --- [extShutdownHook] i.a.a.c.command.impl.CommandChannelImpl  : Unregistered handler for command mayton.spring.axon.probeaxon.command.SelectFoodCardCommand



И все другие также попадают в известные кластеры.

Внезапно (!) прилетает новое сообщение. И оно - не классифицируется. И mikron получает на почту алёрт
с красным лопухом. "Shutting down ...." e.t.c.

Код: sql
1.
2020-10-20 22:02:45.173  INFO 19326 --- [extShutdownHook] o.s.s.concurrent.ThreadPoolTaskExecutor  : Shutting down ExecutorService 'applicationTaskExecutor'




Вот так я себе понимаю проблему топика.

да, это если у тебя описан только ОДИН вариант, а всё остальное у тебя прилетают, как "ОГО, что-то новенькое"
на самом деле там все варианты должны быть известны заранее и каждый соответственно обрабатываться
(впихиваться в новую БД через свой регексп или ещё как)
"Shutting down" - это тип события вполне себе.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010439
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про shutting down - это была моя шутка юмора.

В самом деле. Мне как и вам лень искать репрезентативные логи. А продуктовые - айайай.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010454
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь
Я валяюсь с этой темы Автору нужен "нетривиальный анализ", но он предлагает помогающим самим лазить по гитхабам в поисках тестовых данных для его задачи... Шта? Троллинг такой троллинг. И охота вам нянчиться с этим?

:)) О какой помощи тут на форуме может идти речь? talk is cheap.
Я так вижу: я предлагаю интересную тему, если кому интересно обсудить и пошевелить мозгами.
Ну а если нет прохожий, проходи мимо, не мусори в топике своим ЧСВ.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010457
mayton
Про shutting down - это была моя шутка юмора.

В самом деле. Мне как и вам лень искать репрезентативные логи. А продуктовые - айайай.

а помнится мы на "ты" были
али дистанцируешься?
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010458
Занятная трактовка смысла существования форума
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010460
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mayton
Про shutting down - это была моя шутка юмора.

В самом деле. Мне как и вам лень искать репрезентативные логи. А продуктовые - айайай.

а помнится мы на "ты" были
али дистанцируешься?

Ты читал "Сказку о Тройке" ? Там был такой персонаж. Хлебовводов. Так вот он разговаривал
переключаясь то на "ты". То на "вы".
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010463
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Несколько мыслей...
1. В данной задаче есть элемент обучения.
2. В данной задаче есть некое устойчивое состояние кластеров
3. Есть контрольная точка времени t. После которой мы пускаем систему в режим продолжения обнаружения
кластеров ........... Не исключено что в процессе работы количество кластеров будет расти что само по себе плохо.
Т.к. новые кластеры ухудшают избирательность системы и их надо будет чистить.
Согласен. Это для кластерного решения. С поправкой, что рост количества кл. не бесконечен, если заранее задать верхний порог их кол-ва. Или если не пересчитывать всё с начала. И если метрика достаточно адекватная. Со временем рост замедлится в любом случае. Я думаю, что большинство классов уже известны заранее.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010466
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном топике (как и во многих) не хватает самого главного. Внятных требований. Или даже не требований а юзкейса.
Типа я как девопс системы X хочу получать на почту уведомления о новых и неопознанных сообщениях ошибок
в логах. Образец таких сообщений - прилагается.

Почему скажите мы, помогающие должны искать эти образцы. Автор должен сделать хоть чуточку усилий.

А то получается что вроде как ему надо... но не сильно... Такое отношение и нас расхолаживает.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010467
mayton
Алексей Роза
пропущено...

а помнится мы на "ты" были
али дистанцируешься?

Ты читал "Сказку о Тройке" ? Там был такой персонаж. Хлебовводов. Так вот он разговаривал
переключаясь то на "ты". То на "вы".

не читал. он шизофреником был?
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010468
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mayton
пропущено...

Ты читал "Сказку о Тройке" ? Там был такой персонаж. Хлебовводов. Так вот он разговаривал
переключаясь то на "ты". То на "вы".

не читал. он шизофреником был?

Не знаю но со стороны это было блин... как будто давление оказывал

А что касается меня... то я просто забыл к кому как обращался.


Сказка о Тройке— Я бы попросил! — прервал его Хлебовводов. — Ты что это нам читаете? Ты это нам роман читаете? Или водевиль? Ты, браток, анкету нам зачитываете, а получается у тебя водевиль.
Лавр Федотович взял бинокль и направил на коменданта. Комендант сник.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010470
ну так то по статусу модера положено на "вы"...
и путаться не будеТЕ
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010472
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да забей. Ничего не положено и не покладено.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010480
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron
:)) О какой помощи тут на форуме может идти речь?

Для автора. В последний раз бесплатно предлагаю вариант решения. На сферический вопрос можно дать такой же сферичности ответ.

Надеюсь, начальная классификация сообщений имеется. Далее изменение и рост классов поисходит в автоматизированномрежиме (т.е. не на полном автомате).
Надеюсь, что все сообщения, а не только представители, помечены признаком класса. И имеется доступк ним ко всем.
Далее технология простая, если можно так сказать. Всё делается по подобию поисковиков, только без рекламы. И метрика похожая, "полнотекстовая".

Каждое сообщение превращается в лексемы и рассматривается как предложение из лексем на естественном языке. Почему на естественном? возможны омонимы, синонимы, выпадения и перестановки порядка лексем. Т.е. немного контекстно-зависимая грамматика.
Сделать поисковый запрос к этому массиву.
Вываливается упорядоченный список "подходящих" представителей.
Первый из них самый релевантный. Если что-то новое, то да, в базу новых классов, а потом на ручное усмотрение оператора. Здесь возможны варианты.

Наверняка есть десктопные поисковые приложения. Это для обкатки и отладки решения.


Если у автора остались вопросы, предлагаю услугу, 4-6К$ за разработку алгоритма. По сути за ТЗ кодеру, торг уместен. Ибо алгоритм универсальный, и он затребуется в бизнесе, а закодить желающих найти нетрудно.
Автору успехов.
"Не нравится - проходи мимо"(цэ)
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010482
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
В данном топике (как и во многих) не хватает самого главного. Внятных требований. Или даже не требований а юзкейса.
Авторские темы не смотрел, но в профиле добрая 1/3 это C#, что как бы намекает на статус сотрудника. И если я прав, то откуда тогда взяться умению к самостоятельной и грамотной постановке задачи.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010490
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
А то получается что вроде как ему надо... но не сильно... Такое отношение и нас расхолаживает.

это как хобби. Будет больше времени посмотрю bugtracker JBOSS-a для примеров.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010495
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
mayton
В данном топике (как и во многих) не хватает самого главного. Внятных требований. Или даже не требований а юзкейса.
Авторские темы не смотрел, но в профиле добрая 1/3 это C#, что как бы намекает на статус сотрудника. И если я прав, то откуда тогда взяться умению к самостоятельной и грамотной постановке задачи.


Да что же вам ещё не понятно? Процесс описал, вопросы чётко сформулировал, на конкретном примере с bagtracker usecase показал. О чем ещё плач? Задавайте конкретные вопросы.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010496
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хобби .... и почему же я не верю? Наверное потому, что в игровой задачке исходные данные не скрывают. И про критичность по времени не заикаются. Здесь очевидный бизнес интерес. Пусть даже и личный. Но тогда и начинать надо со слова Помогите .... а не эксплуатировать добрые порывы.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010497
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mikron
Да что же вам ещё не понятно? ...
Мне? понятно кроме конкретики. Ответ я дал. Что в нём вам лично не понятно? Мне в нём понятно всё.

Давно было сказано.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010516
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот неплохой обзор по алгоритмам кластеризации.

https://towardsdatascience.com/the-5-clustering-algorithms-data-scientists-need-to-know-a36d136ef68
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010519
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Остался пустяк - рассказать автору как подготовить данные. Это собственно самая сложная часть задачи.
И оптимизации. Подозреваю что количество записей в логах меряется миллионами. И тут без этого не обойтись.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010600
mikron
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это мой последний пост (номер красивый)
Я наблюдаю у нас разный уровень, культура, менталитет.
Дискуссий не получается, все скатывается к позёрству и глупым нападкам. Бессмысленная бесконечная война.
Мне это не нужно и жаль времени.
Всем успешных баталий.
IMXO Форум в таком виде, когда нельзя фильтровать/собирать оппонентов, как социальная платформа уже не актуален.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010605
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из реализаций вот тут есть

http://commons.apache.org/proper/commons-math/apidocs/org/apache/commons/math4/ml/clustering/package-summary.html

  • KMeansPlusPlusClusterer - метод К-средних
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010621
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работает. Толкаем туда 1000 точек на плоскости с координатами (0,100) (100,0) плюс гауссовый шум
с средним отклонением 30.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
public class MaytonsFuckenKMeansTest {

    public static void main(String[] args) {
        KMeansPlusPlusClusterer<DoublePoint> algorithm = new KMeansPlusPlusClusterer<>(2);
        List<DoublePoint> doublePoints = new ArrayList<>();
        Random random = new Random();
        for (int i = 0; i < 500; i++) {
            DoublePoint doublePoint = new DoublePoint(new double[] {100.0 + 30 * random.nextGaussian(),30 * random.nextGaussian()});
            doublePoints.add(doublePoint);
            DoublePoint doublePoint2 = new DoublePoint(new double[] {30 * random.nextGaussian(), 30 * random.nextGaussian() + 100.0});
            doublePoints.add(doublePoint2);
        }
        Collections.shuffle(doublePoints);
        List<CentroidCluster<DoublePoint>> result = algorithm.cluster(doublePoints);
        for(CentroidCluster resItem : result) {
            Arrays.stream(resItem.getCenter().getPoint()).forEach(v -> {
                System.out.printf("%f ", v);
            });
            System.out.println();
        }
    }
}



При известном количестве средних он находит вот такое.

0.677541 101.093618
99.788184 2.010144
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010646
mikron
Это мой последний пост (номер красивый)
Я наблюдаю у нас разный уровень, культура, менталитет.
Дискуссий не получается, все скатывается к позёрству и глупым нападкам. Бессмысленная бесконечная война.
Мне это не нужно и жаль времени.
Всем успешных баталий.
IMXO Форум в таком виде, когда нельзя фильтровать/собирать оппонентов, как социальная платформа уже не актуален.

почаще ходи по форумам со спрятанными наглухо данными и показом ЛЕВЫХ данных
а потом ной погромче, что форум говно и ничем не помог
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010650
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Странный он. Вроде в форуме с 2009 года. Обидчивый.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010660
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Из реализаций вот тут есть
KMeansPlusPlusClusterer - метод К-средних
Да бесполезно, мэйтон, не в коня корм. Для типовых кластеризаций нужна хотя бы 1 ось координат. Что-то не заметно было у ТС шагов в эту сторону. А без координат прямая дорога к Кохонену и строкам лексем. Все предложения и вопросы как селёдкой по дубу. Ну почти. Я не жалею.

Попутно по поводу сборника логов в разных форматах: сами понимаете, вот есть Война и мир, она мультиязычна. Ну и как без словаря убедиться, что там текст не эротического содержания. По ТСу, наверное, путём статистики текста)). ТС так желал. А мы его не так понимали. Закономерный итог.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010662
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98
mayton
Из реализаций вот тут есть
KMeansPlusPlusClusterer - метод К-средних
Да бесполезно, мэйтон, не в коня корм. Для типовых кластеризаций нужна хотя бы 1 ось координат. Что-то не заметно было у ТС шагов в эту сторону. А без координат прямая дорога к Кохонену и строкам лексем. Все предложения и вопросы как селёдкой по дубу. Ну почти. Я не жалею.

Попутно по поводу сборника логов в разных форматах: сами понимаете, вот есть Война и мир, она мультиязычна. Ну и как без словаря убедиться, что там текст не эротического содержания. По ТСу, наверное, путём статистики текста)). ТС так желал. А мы его не так понимали. Закономерный итог.

Я хотел развить свою идею расстояния Хемминга и сыграть на этом в плане скорости.
Но для процесса кластеризации центры кластеров все равно будут вещественными. Даже
если исходные векторы я сведу к бинарным значениям {1.0, 0.0}

Жаль конешно что автор слился. Видимо не очень горело. Но я отдельно подниму в Java
парсер логов. Для своих нужд.
...
Рейтинг: 0 / 0
Нетривиальная задача анализа текстовых сообщений
    #40010665
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98

Попутно по поводу сборника логов в разных форматах: сами понимаете, вот есть Война и мир, она мультиязычна. Ну и как без словаря убедиться, что там текст не эротического содержания. По ТСу, наверное, путём статистики текста)). ТС так желал. А мы его не так понимали. Закономерный итог.

Идея ТС-а не продумана делатльно как раз в юзкейсе. В этой задаче в принципе из коробки ничего
работать не будет. Если даже допустить что мы убираем явно число кластеров (мы его не знаем)
то для алгоритма все равно нужен криетрий останова.

Для нового центра кластеров (новая ошибка) все равно нужен некий эпсилон который будет
характеризовать новую ошибку.

Вот жаль что автор этого не понимает. Он рассуждает так - вот дайте мне "лялю" а я уж посмотрю.

Не выйдет так. Даже такой энтузиаст как я устанет на второй странице. Сил нет продумывать
за кастомера все. А уже за мемберов скруля я вообще молчу. Еще чего не хватало.
...
Рейтинг: 0 / 0
103 сообщений из 103, показаны все 5 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Нетривиальная задача анализа текстовых сообщений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]