{'fraction_non_alphanumeric': 0.019771071800208116, 'fraction_numerical': 0.004162330905306972, 'mean_word_length': 5.050314465408805, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Batch dynamic algorithm to find k-core hierarchies

Finding k-cores in graphs is a valuable and effective strategy for extracting dense regions of otherwise sparse graphs. We focus on the important problem of maintaining cores on rapidly changing dynamic graphs, where batches of edge changes need to be processed quickly. Many prior dynamic algorithms focus on the problem of maintaining a core decomposition. This finds vertices that are dense in some subgraph, but the subgraph itself is not returned. We develop a new dynamic batch algorithm to maintain cores, with their connected subgraphs, that improves efficiency over processing edge-by-edge. We implement our algorithm and experimentally show that with it core queries can be returned on rapidly changing graphs quickly enough for interactive applications. For 1 million edge batches, on many graphs we run over 100x faster than processing edge-by-edge while remaining under re-computing from scratch.