Вычисление сходства между предложениями

У меня есть база данных с тысячами строк журналов ошибок и их описанием. Этот журнал ошибок предназначен для приложения, работающего 24/7. Я хочу создать панель мониторинга / пользовательский интерфейс для просмотра текущих распространенных ошибок, возникающих для поддержки производства.

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

например, ошибка транзакции XYz для пользователя 233, например 2. Ошибка транзакции XYz для пользователя 567

Я считаю, что эти две ошибки одинаковы. Поэтому я хочу программу, которая будет просматривать новые журналы ошибок и классифицировать их по группам. Я пытаюсь использовать "редактировать расстояние", но это очень медленно. Так как у меня уже есть старые журналы ошибок, я пытаюсь найти решения, использующие эту информацию тоже. Какие-нибудь мысли?

2 ответа

Я предполагаю, что сообщения об ошибках генерируются программой, и поэтому они, вероятно, попадают в очень специфический шаблон.

Это означает, что вам не нужно делать ничего особенно сложного. Просто проанализируйте сообщения об ошибках: используйте регулярные выражения (или, возможно, что-то более мощное), чтобы разбить сообщения на кортежи. Затем сгруппируйте или посчитайте или сделайте что-нибудь с отдельными полями. Например, вы можете сделать регулярное выражение типа "Ошибка транзакции ([AZ]*) для пользователя ([0-9]*)". Затем можно составить гистограмму кодов ошибок (первая группа захвата) или пользователей (вторая группа захвата).

Есть и другие метрики (кроме Левенштейна), которые могут быть более подходящими. Вы рассматривали косинусное сходство?

SimMetrics - это библиотека F/OSS, которая предлагает обширную коллекцию алгоритмов подобия и соответствующих им функций стоимости.

Другие вопросы по тегам