This is a simple Python script that mines patterns from the output of the tracker using the SPMF pattern mining library.
This requires Python 3, and a modern version of Java (tested with Java 21 and Java 23). The Python script accepts an output directory and a list of tracker result files as arguments. A typical call to the script could look like the following:
python3 ./mine-patterns.py mined-patterns ../tracking/datasets/results/*Patterns are mined using the following algorithms: CloFast, CM-ClaSP, and PrefixSpan_PostProcessingClosed. The result for each algorithm is written to a file with the corresponding name in the output directory.
SPMF mines patterns on sequences of integer. This means the resulting patterns cannot be interpreted as is. The Python script creates a translation file translations.txt in the output directory, that converts each integer to its corresponding action (e.g., insertion of a function).
The spmf.jar file can be found at https://www.philippe-fournier-viger.com/spmf/index.php?link=download.php. This uses version 2.62. For licensing information, see https://www.philippe-fournier-viger.com/spmf/index.php?link=license.php.