Skip to content

Commit

Permalink
Update morse.py - formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
bact authored Dec 13, 2023
1 parent 0fd8bd8 commit 21d0a2b
Showing 1 changed file with 126 additions and 137 deletions.
263 changes: 126 additions & 137 deletions pythainlp/util/morse.py
Original file line number Diff line number Diff line change
@@ -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(" ", "")

Expand All @@ -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}.")
Expand Down Expand Up @@ -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}.")

0 comments on commit 21d0a2b

Please sign in to comment.