Интересуют алгоритмы для анализа логов программ, причем не статистические (которые просто подсчитывают кол-ва определенных слов/событий), а интеллектуальные. Например, работает наша программа, печатает какие-то данные в лог. В это время анализатор производит какие-то вычисления, находит возможные закономерности. В некоторый момент времени в программе возникает событие, которое нарушает выявленные закономерности и на это нам указывает анализатор.
В любом случае написание алгоритма разбора лога придется делать фиксированным.
Если же использовать ИИ, то это достаточно громоздкий и долгий путь.
Если фиксированный алгоритм не подходит, создайте аналитический алгоритм, который по фиксированной базе признаков (вопросов) будет выдавать рекомендации (ответы). Для гугления — экспертные системы.
То, что для практических целей алгоритм должен быть фиксирован (по крайней мере фиксированы «события», которые пишутся в логах + плюс формат этих событий), это понятно. И с экспертными системами тоже все ясно. Я вот думаю абстрагироваться от конкретных примеров и представить, что на вход алгоритму дается просто последовательность символов. Что считать «символом» в каждом конкретном случае определяется отдельно. Тут можно и алгоритмы на строках применять, и вообще пытаться нейронные сети строить.
Для начала можно фиксировать события, разделяя их по классам. Составив карту основных событий можно сделать взаимосвязь с определенными последствиями. И далее как паттерн применять ко всему потоку.
Используйте Bayes probability тест. Собирайте статистику, «нормальными» по статистике данные обучайте как 1, ненормальными полностью как 0.
Затем используйте данные при анализе.
Да, как вариант можно рассмотреть (что-то сразу об этом не подумал). Правда я сейчас смотрю в сторону вычисления характеристических паттернов в строках.