From 21d0a2b1592c862e52b619af05e99c6283bdb12e Mon Sep 17 00:00:00 2001 From: Arthit Suriyawongkul Date: Wed, 13 Dec 2023 07:57:34 +0000 Subject: [PATCH] Update morse.py - formatting --- pythainlp/util/morse.py | 263 +++++++++++++++++++--------------------- 1 file changed, 126 insertions(+), 137 deletions(-) diff --git a/pythainlp/util/morse.py b/pythainlp/util/morse.py index 22c88dce5..286edcb6a 100644 --- a/pythainlp/util/morse.py +++ b/pythainlp/util/morse.py @@ -1,129 +1,133 @@ # -*- coding: utf-8 -*- # SPDX-FileCopyrightText: Copyright 2016-2023 PyThaiNLP Project # SPDX-License-Identifier: Apache-2.0 + THAI_MORSE_CODE = { - 'ก': '--.', - 'ข': '-.-.', - 'ค': '-.-', - 'ฆ': '-.-', - 'ง': '-.--.', - 'จ': '-..-.', - 'ฉ': '----', - 'ช': '-..-', - 'ฌ': '-..-', - 'ซ': '--..', - 'ญ': '.---', - 'ด': '-..', - 'ถ': '-.-..', - 'ฐ': '-.-..', - 'ฑ': '-..--', - 'ฒ': '-..--', - 'ท': '-..--', - 'ธ': '-..--', - 'ณ': '-.', - 'น': '-.', - 'บ': '-...', - 'ป': '.--.', - 'ผ': '--.-', - 'ฝ': '-.-.-', - 'พ': '.--..', - 'ภ': '.--..', - 'ฟ': '..-.', - 'ม': '--', - 'ย': '-.--', - 'ร': '.-.', - 'ล': '.-..', - 'ฬ': '.-..', - 'ว': '.--', - 'ศ': '...', - 'ษ': '...', - 'ส': '...', - 'ห': '....', - 'ฮ': '--.--', - 'ฎ': '-..', - 'ต': '-', - 'ฏ': '-', - 'ฤ': '.-.--', - '่': '..-', - '้': '...-', - '๊': '--...', - '๋': '.-.-.', - 'ั': '.--.-', - '็': '---..', - '์': '--..-', - 'ั้': '.---.', - 'ฯ': '--.-.', - 'ฯลฯ': '---.-', - 'ๆ': '---.-', - 'ะ': '.-...', - 'า': '.-', - 'ิ': '..-..', - 'ี': '..', - 'ึ': '..--.', - 'ื': '..--', - 'ุ': '..-.-', - 'ู': '---.', - 'เ': '.', - 'แ': '.-.-', - 'โ': '---', - 'ไ': '.-..-', - 'ใ': '.-..-', - 'ำ': '...-.', - 'อ': '-...-' + "ก": "--.", + "ข": "-.-.", + "ค": "-.-", + "ฆ": "-.-", + "ง": "-.--.", + "จ": "-..-.", + "ฉ": "----", + "ช": "-..-", + "ฌ": "-..-", + "ซ": "--..", + "ญ": ".---", + "ด": "-..", + "ถ": "-.-..", + "ฐ": "-.-..", + "ฑ": "-..--", + "ฒ": "-..--", + "ท": "-..--", + "ธ": "-..--", + "ณ": "-.", + "น": "-.", + "บ": "-...", + "ป": ".--.", + "ผ": "--.-", + "ฝ": "-.-.-", + "พ": ".--..", + "ภ": ".--..", + "ฟ": "..-.", + "ม": "--", + "ย": "-.--", + "ร": ".-.", + "ล": ".-..", + "ฬ": ".-..", + "ว": ".--", + "ศ": "...", + "ษ": "...", + "ส": "...", + "ห": "....", + "ฮ": "--.--", + "ฎ": "-..", + "ต": "-", + "ฏ": "-", + "ฤ": ".-.--", + "่": "..-", + "้": "...-", + "๊": "--...", + "๋": ".-.-.", + "ั": ".--.-", + "็": "---..", + "์": "--..-", + "ั้": ".---.", + "ฯ": "--.-.", + "ฯลฯ": "---.-", + "ๆ": "---.-", + "ะ": ".-...", + "า": ".-", + "ิ": "..-..", + "ี": "..", + "ึ": "..--.", + "ื": "..--", + "ุ": "..-.-", + "ู": "---.", + "เ": ".", + "แ": ".-.-", + "โ": "---", + "ไ": ".-..-", + "ใ": ".-..-", + "ำ": "...-.", + "อ": "-...-", } + ENGLISH_MORSE_CODE = { - 'A': '.-', - 'B': '-...', - 'C': '-.-.', - 'D': '-..', - 'E': '.', - 'F': '..-.', - 'G': '--.', - 'H': '....', - 'I': '..', - 'J': '.---', - 'K': '-.-', - 'L': '.-..', - 'M': '--', - 'N': '-.', - 'O': '---', - 'P': '.--.', - 'Q': '--.-', - 'R': '.-.', - 'S': '...', - 'T': '-', - 'U': '..-', - 'V': '...-', - 'W': '.--', - 'X': '-..-', - 'Y': '-.--', - 'Z': '--..', - '0': '-----', - ',': '--..--', - '1': '.----', - '.': '.-.-.-', - '2': '..---', - '?': '..--..', - '3': '...--', - ';': '-.-.-.', - '4': '....-', - ':': '---...', - '5': '.....', - "'": '.----.', - '6': '-....', - '-': '-....-', - '7': '--...', - '/': '-..-.', - '8': '---..', - '(': '-.--.-' + "A": ".-", + "B": "-...", + "C": "-.-.", + "D": "-..", + "E": ".", + "F": "..-.", + "G": "--.", + "H": "....", + "I": "..", + "J": ".---", + "K": "-.-", + "L": ".-..", + "M": "--", + "N": "-.", + "O": "---", + "P": ".--.", + "Q": "--.-", + "R": ".-.", + "S": "...", + "T": "-", + "U": "..-", + "V": "...-", + "W": ".--", + "X": "-..-", + "Y": "-.--", + "Z": "--..", + "0": "-----", + ",": "--..--", + "1": ".----", + ".": ".-.-.-", + "2": "..---", + "?": "..--..", + "3": "...--", + ";": "-.-.-.", + "4": "....-", + ":": "---...", + "5": ".....", + "'": ".----.", + "6": "-....", + "-": "-....-", + "7": "--...", + "/": "-..-.", + "8": "---..", + "(": "-.--.-", } decodingeng = {} for key, val in ENGLISH_MORSE_CODE.items(): decodingeng[val] = key + decodingthai = {} for key, val in THAI_MORSE_CODE.items(): decodingthai[val.replace(" ", "")] = key + for key, val in THAI_MORSE_CODE.items(): THAI_MORSE_CODE[key] = val.replace(" ", "") @@ -147,20 +151,12 @@ def morse_encode(text: str, lang: str = "th") -> str: # output: -.-. .- - """ if lang == "th": # Thai - return ' '.join( - map( - lambda x, - g=THAI_MORSE_CODE.get: g(x, ' '), - text.upper() - ) + return " ".join( + map(lambda x, g=THAI_MORSE_CODE.get: g(x, " "), text.upper()) ) elif lang == "en": # English - return ' '.join( - map( - lambda x, - g=ENGLISH_MORSE_CODE.get: g(x, ' '), - text.upper() - ) + return " ".join( + map(lambda x, g=ENGLISH_MORSE_CODE.get: g(x, " "), text.upper()) ) else: raise NotImplementedError(f"This function doesn't support {lang}.") @@ -188,21 +184,14 @@ def morse_decode(morse_text: str, lang: str = "th") -> str: # output: CAT """ if lang == "th": - ans = ''.join( - map( - lambda x, - g=decodingthai.get: g(x, ''), - morse_text.split(' ')) + ans = "".join( + map(lambda x, g=decodingthai.get: g(x, ""), morse_text.split(" ")) ) - return ''.join(ans.split()) + return "".join(ans.split()) elif lang == "en": - ans = ''.join( - map( - lambda x, - g=decodingeng.get: g(x, ' '), - morse_text.split(' ') - ) + ans = "".join( + map(lambda x, g=decodingeng.get: g(x, " "), morse_text.split(" ")) ) - return ' '.join(ans.split()) + return " ".join(ans.split()) else: raise NotImplementedError(f"This function doesn't support {lang}.")