powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Нетривиальная задача анализа текстовых сообщений
25 сообщений из 103, страница 1 из 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
25 сообщений из 103, страница 1 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Нетривиальная задача анализа текстовых сообщений
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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