{'fraction_non_alphanumeric': 0.023917995444191344, 'fraction_numerical': 0.0056947608200455585, 'mean_word_length': 5.369565217391305, '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}}
Pattern Matching Algorithms via Automata 1

Pattern matching occurs in various applications, ranging from simple text searching in word processors to identification of common motifs in DNA sequences in computational biology. The problem of exact pattern matching has been well studied and a number of efficient algorithms exist. However these exact pattern matching algorithms are of little help when they are applied to finding patterns in DNA sequences. The DNA sequence search is inheritably inexact in nature because there are acceptable equivalences of amino acids that made up of the sequence. Current inexact pattern matching algorithms are based on four approaches: (1) Dynamic Programming; (2) Automata; (3) Bit-Parallelism; (4) Filtering. This paper serves as an overview of the common existing inexact pattern matching algorithms, with the focus on automata approach.