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


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