messageanalyzer.detect_language_patterns ======================================== .. py:module:: messageanalyzer.detect_language_patterns Functions --------- .. autoapisummary:: messageanalyzer.detect_language_patterns.detect_language_patterns Module Contents --------------- .. py:function:: detect_language_patterns(messages: List[str], method: str = 'language', n: int = 2, top_n: int = 5) -> Union[List[str], List[Tuple[str, int]]] Detects language patterns in a list of messages. :param messages: A list of text messages to analyze. :type messages: List[str] :param method: The method to use for pattern detection. Supported methods are: - "language": Detects the language of each message. - "ngrams": Extracts common n-grams. - "char_patterns": Analyzes common character patterns. :type method: str, default = "language" :param n: The 'n' in n-grams, used when method="ngrams". :type n: int, default = 2 :param top_n: The number of top patterns to return. :type top_n: int, default = 5 :returns: A list of detected patterns based on the chosen method: - For "language", a list of detected languages (e.g., ['en', 'fr']). - For "ngrams", a list of tuples (ngram, frequency). - For "char_patterns", a list of tuples (character, frequency). :rtype: Union[List[str], List[Tuple[str, int]]] :raises TypeError: If messages is not a list of strings. :raises ValueError: If method is unsupported. .. rubric:: Examples >>> messages = ["Hello, how are you?", "Bonjour, comment ça va?", "Hola, ¿cómo estás?"] Example 1: Detecting languages >>> detect_language_patterns(messages, method="language") ['en', 'fr', 'es'] # English, French, Spanish Example 2: Extracting common 2-grams >>> detect_language_patterns(messages, method="ngrams", n=2, top_n=5) [('how are', 1), ('are you', 1), ('comment ça', 1), ('ça va', 1), ('cómo estás', 1)] Example 3: Analyzing common character patterns >>> detect_language_patterns(messages, method="char_patterns", top_n=5) [(' ', 8), ('o', 7), ('e', 6), ('a', 5), ('m', 3)]