pm4py.util.labels_similarity module#
PM4Py – A Process Mining Library for Python Copyright (C) 2026 Process Intelligence Solutions GmbH
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see this software project’s root or visit <https://www.gnu.org/licenses/>.
Website: https://processintelligence.solutions Contact: info@processintelligence.solutions
- pm4py.util.labels_similarity.label_sets_similarity(labels_a: List[str], labels_b: List[str], threshold: float = 0.75) float[source]#
Dice-style similarity in [0, 1] that tolerates near-matches.
Each label in A is greedily paired with its most similar, still-unmatched label in B (SequenceMatcher ratio >= threshold).
Similarity =
2·|matched| / (|A| + |B|).
- pm4py.util.labels_similarity.map_labels(labels_a: List[str], labels_b: List[str], threshold: float = 0.75) Dict[str, str][source]#
Returns a dict {label_in_A: mapped_label}.
If an exact duplicate exists in B, map to that.
Otherwise pick the unused label in B with the highest similarity (SequenceMatcher ratio ≥ threshold).
If nothing reaches the threshold, map to itself (no change).