Alexey Epsilon, В общем-то на бытовом уровне идея понятна, но пока есть сомнения в том, что длительность анализа журнала таким путем будет разумной, так как предполагается многократный проход по всему журналу. Хотя, возможно, что по другому никак. С фрилансером вариант исключен :)
Нашел интересный инструмент для работы с последовательностями - суффиксное дерево, похоже, что его можно использовать для поиска повторов.
Alexey Epsilon, Если идти по второму пути, то как раз алгоритм накопления такой статистики меня и интересует. То есть опять мы приходим к задаче поиска повторов в упорядоченной последовательности, решения которой у меня нет.
Alexey Epsilon, Как способ хранения описания действий и некого представления журнала с учетом задачи - выглядит достаточно удобно.По грубой оценке в журнале может быть несколько сотен уникальных видов действий, каждое со своей последовательностью записей, и ловить их вручную по журналу достаточно трудоемко. Хотелось бы автоматизировать поиск повторов, но пока мысль о том, как это сделать на предлагаемом графе, от меня ускользает :)
Как я уже написал ранее, основная проблема не в обработке исходных данных, как таковых - журнал в текущем виде можно без проблем загрузить в любую СУБД. Вопрос в обнаружении повторяющихся последовательностей идущих друг за другом записей в журнале, причем я сейчас не знаю все существующие в журнале повторяющиеся последовательности. Немного подробнее в комментариях выше. Какой для этого подойдет алгоритм, можно ли его реализовать на SQL - я не знаю.
freeExec, В первом приближении, видимо, так. Я рассчитывал максимально автоматизировать весь процесс. Описывать каждое действие вручную с учетом вариативности я уже попробовал - долго и результат не стопроцентный. Это как пытаться написать алгоритм игры в шахматы, для каждого возможного хода создавая отдельное условие. Возможно, есть класс близких задач из областей Big Data/машинное обучение, и можно подобрать уже существующее решение.
freeExec,
Я, возможно, не совсем корректно написал вопрос. Мне надо не только определить длительность, но и определить, какое конкретно действие пользователем совершено.
То есть на выходе у меня должен быть другой журнал:
дата/время, пользователь, действие, длительность.
Для меня в построении четкого алгоритма решения трудность составляют вот эти проблемы:
1. Для каждого действия пользователя ( а вариантов действий достаточно много, и у меня сейчас даже нет их исчерпывающего списка) набор записей в журнале имеет некоторую вариативность, например, в процессе совершения операции оператор ошибся, или клиент отказался.
2. Я привел пример набора записей одного действия пользователя просто для понимания структуры журнала, на самом деле у разных действий пользователя могут быть наборы записей, совсем не похожие на мой пример.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
Нашел интересный инструмент для работы с последовательностями - суффиксное дерево, похоже, что его можно использовать для поиска повторов.