11# -*- coding: utf-8 -*-
22# SPDX-FileCopyrightText: Copyright 2016-2023 PyThaiNLP Project
33# SPDX-License-Identifier: Apache-2.0
4+
45THAI_MORSE_CODE = {
5- 'ก' : ' --.' ,
6- 'ข' : ' -.-.' ,
7- 'ค' : ' -.-' ,
8- 'ฆ' : ' -.-' ,
9- 'ง' : ' -.--.' ,
10- 'จ' : ' -..-.' ,
11- 'ฉ' : ' ----' ,
12- 'ช' : ' -..-' ,
13- 'ฌ' : ' -..-' ,
14- 'ซ' : ' --..' ,
15- 'ญ' : ' .---' ,
16- 'ด' : ' -..' ,
17- 'ถ' : ' -.-..' ,
18- 'ฐ' : ' -.-..' ,
19- 'ฑ' : ' -..--' ,
20- 'ฒ' : ' -..--' ,
21- 'ท' : ' -..--' ,
22- 'ธ' : ' -..--' ,
23- 'ณ' : '-.' ,
24- 'น' : '-.' ,
25- 'บ' : ' -...' ,
26- 'ป' : ' .--.' ,
27- 'ผ' : ' --.-' ,
28- 'ฝ' : ' -.-.-' ,
29- 'พ' : ' .--..' ,
30- 'ภ' : ' .--..' ,
31- 'ฟ' : ' ..-.' ,
32- 'ม' : '--' ,
33- 'ย' : ' -.--' ,
34- 'ร' : ' .-.' ,
35- 'ล' : ' .-..' ,
36- 'ฬ' : ' .-..' ,
37- 'ว' : ' .--' ,
38- 'ศ' : ' ...' ,
39- 'ษ' : ' ...' ,
40- 'ส' : ' ...' ,
41- 'ห' : ' ....' ,
42- 'ฮ' : ' --.--' ,
43- 'ฎ' : ' -..' ,
44- 'ต' : '-' ,
45- 'ฏ' : '-' ,
46- 'ฤ' : ' .-.--' ,
47- '่' : ' ..-' ,
48- '้' : ' ...-' ,
49- '๊' : ' --...' ,
50- '๋' : ' .-.-.' ,
51- 'ั' : ' .--.-' ,
52- '็' : ' ---..' ,
53- '์' : ' --..-' ,
54- 'ั้' : ' .---.' ,
55- 'ฯ' : ' --.-.' ,
56- ' ฯลฯ' : ' ---.-' ,
57- 'ๆ' : ' ---.-' ,
58- 'ะ' : ' .-...' ,
59- 'า' : '.-' ,
60- 'ิ' : ' ..-..' ,
61- 'ี' : '..' ,
62- 'ึ' : ' ..--.' ,
63- 'ื' : ' ..--' ,
64- 'ุ' : ' ..-.-' ,
65- 'ู' : ' ---.' ,
66- 'เ' : '.' ,
67- 'แ' : ' .-.-' ,
68- 'โ' : ' ---' ,
69- 'ไ' : ' .-..-' ,
70- 'ใ' : ' .-..-' ,
71- 'ำ' : ' ...-.' ,
72- 'อ' : ' -...-'
6+ "ก" : " --." ,
7+ "ข" : " -.-." ,
8+ "ค" : " -.-" ,
9+ "ฆ" : " -.-" ,
10+ "ง" : " -.--." ,
11+ "จ" : " -..-." ,
12+ "ฉ" : " ----" ,
13+ "ช" : " -..-" ,
14+ "ฌ" : " -..-" ,
15+ "ซ" : " --.." ,
16+ "ญ" : " .---" ,
17+ "ด" : " -.." ,
18+ "ถ" : " -.-.." ,
19+ "ฐ" : " -.-.." ,
20+ "ฑ" : " -..--" ,
21+ "ฒ" : " -..--" ,
22+ "ท" : " -..--" ,
23+ "ธ" : " -..--" ,
24+ "ณ" : "-." ,
25+ "น" : "-." ,
26+ "บ" : " -..." ,
27+ "ป" : " .--." ,
28+ "ผ" : " --.-" ,
29+ "ฝ" : " -.-.-" ,
30+ "พ" : " .--.." ,
31+ "ภ" : " .--.." ,
32+ "ฟ" : " ..-." ,
33+ "ม" : "--" ,
34+ "ย" : " -.--" ,
35+ "ร" : " .-." ,
36+ "ล" : " .-.." ,
37+ "ฬ" : " .-.." ,
38+ "ว" : " .--" ,
39+ "ศ" : " ..." ,
40+ "ษ" : " ..." ,
41+ "ส" : " ..." ,
42+ "ห" : " ...." ,
43+ "ฮ" : " --.--" ,
44+ "ฎ" : " -.." ,
45+ "ต" : "-" ,
46+ "ฏ" : "-" ,
47+ "ฤ" : " .-.--" ,
48+ "่" : " ..-" ,
49+ "้" : " ...-" ,
50+ "๊" : " --..." ,
51+ "๋" : " .-.-." ,
52+ "ั" : " .--.-" ,
53+ "็" : " ---.." ,
54+ "์" : " --..-" ,
55+ "ั้" : " .---." ,
56+ "ฯ" : " --.-." ,
57+ " ฯลฯ" : " ---.-" ,
58+ "ๆ" : " ---.-" ,
59+ "ะ" : " .-..." ,
60+ "า" : ".-" ,
61+ "ิ" : " ..-.." ,
62+ "ี" : ".." ,
63+ "ึ" : " ..--." ,
64+ "ื" : " ..--" ,
65+ "ุ" : " ..-.-" ,
66+ "ู" : " ---." ,
67+ "เ" : "." ,
68+ "แ" : " .-.-" ,
69+ "โ" : " ---" ,
70+ "ไ" : " .-..-" ,
71+ "ใ" : " .-..-" ,
72+ "ำ" : " ...-." ,
73+ "อ" : " -...-" ,
7374}
75+
7476ENGLISH_MORSE_CODE = {
75- 'A' : '.-' ,
76- 'B' : ' -...' ,
77- 'C' : ' -.-.' ,
78- 'D' : ' -..' ,
79- 'E' : '.' ,
80- 'F' : ' ..-.' ,
81- 'G' : ' --.' ,
82- 'H' : ' ....' ,
83- 'I' : '..' ,
84- 'J' : ' .---' ,
85- 'K' : ' -.-' ,
86- 'L' : ' .-..' ,
87- 'M' : '--' ,
88- 'N' : '-.' ,
89- 'O' : ' ---' ,
90- 'P' : ' .--.' ,
91- 'Q' : ' --.-' ,
92- 'R' : ' .-.' ,
93- 'S' : ' ...' ,
94- 'T' : '-' ,
95- 'U' : ' ..-' ,
96- 'V' : ' ...-' ,
97- 'W' : ' .--' ,
98- 'X' : ' -..-' ,
99- 'Y' : ' -.--' ,
100- 'Z' : ' --..' ,
101- '0' : ' -----' ,
102- ',' : ' --..--' ,
103- '1' : ' .----' ,
104- '.' : ' .-.-.-' ,
105- '2' : ' ..---' ,
106- '?' : ' ..--..' ,
107- '3' : ' ...--' ,
108- ';' : ' -.-.-.' ,
109- '4' : ' ....-' ,
110- ':' : ' ---...' ,
111- '5' : ' .....' ,
112- "'" : ' .----.' ,
113- '6' : ' -....' ,
114- '-' : ' -....-' ,
115- '7' : ' --...' ,
116- '/' : ' -..-.' ,
117- '8' : ' ---..' ,
118- '(' : ' -.--.-'
77+ "A" : ".-" ,
78+ "B" : " -..." ,
79+ "C" : " -.-." ,
80+ "D" : " -.." ,
81+ "E" : "." ,
82+ "F" : " ..-." ,
83+ "G" : " --." ,
84+ "H" : " ...." ,
85+ "I" : ".." ,
86+ "J" : " .---" ,
87+ "K" : " -.-" ,
88+ "L" : " .-.." ,
89+ "M" : "--" ,
90+ "N" : "-." ,
91+ "O" : " ---" ,
92+ "P" : " .--." ,
93+ "Q" : " --.-" ,
94+ "R" : " .-." ,
95+ "S" : " ..." ,
96+ "T" : "-" ,
97+ "U" : " ..-" ,
98+ "V" : " ...-" ,
99+ "W" : " .--" ,
100+ "X" : " -..-" ,
101+ "Y" : " -.--" ,
102+ "Z" : " --.." ,
103+ "0" : " -----" ,
104+ "," : " --..--" ,
105+ "1" : " .----" ,
106+ "." : " .-.-.-" ,
107+ "2" : " ..---" ,
108+ "?" : " ..--.." ,
109+ "3" : " ...--" ,
110+ ";" : " -.-.-." ,
111+ "4" : " ....-" ,
112+ ":" : " ---..." ,
113+ "5" : " ....." ,
114+ "'" : " .----." ,
115+ "6" : " -...." ,
116+ "-" : " -....-" ,
117+ "7" : " --..." ,
118+ "/" : " -..-." ,
119+ "8" : " ---.." ,
120+ "(" : " -.--.-" ,
119121}
120122
121123decodingeng = {}
122124for key , val in ENGLISH_MORSE_CODE .items ():
123125 decodingeng [val ] = key
126+
124127decodingthai = {}
125128for key , val in THAI_MORSE_CODE .items ():
126129 decodingthai [val .replace (" " , "" )] = key
130+
127131for key , val in THAI_MORSE_CODE .items ():
128132 THAI_MORSE_CODE [key ] = val .replace (" " , "" )
129133
@@ -147,20 +151,12 @@ def morse_encode(text: str, lang: str = "th") -> str:
147151 # output: -.-. .- -
148152 """
149153 if lang == "th" : # Thai
150- return ' ' .join (
151- map (
152- lambda x ,
153- g = THAI_MORSE_CODE .get : g (x , ' ' ),
154- text .upper ()
155- )
154+ return " " .join (
155+ map (lambda x , g = THAI_MORSE_CODE .get : g (x , " " ), text .upper ())
156156 )
157157 elif lang == "en" : # English
158- return ' ' .join (
159- map (
160- lambda x ,
161- g = ENGLISH_MORSE_CODE .get : g (x , ' ' ),
162- text .upper ()
163- )
158+ return " " .join (
159+ map (lambda x , g = ENGLISH_MORSE_CODE .get : g (x , " " ), text .upper ())
164160 )
165161 else :
166162 raise NotImplementedError (f"This function doesn't support { lang } ." )
@@ -188,21 +184,14 @@ def morse_decode(morse_text: str, lang: str = "th") -> str:
188184 # output: CAT
189185 """
190186 if lang == "th" :
191- ans = '' .join (
192- map (
193- lambda x ,
194- g = decodingthai .get : g (x , '' ),
195- morse_text .split (' ' ))
187+ ans = "" .join (
188+ map (lambda x , g = decodingthai .get : g (x , "" ), morse_text .split (" " ))
196189 )
197- return '' .join (ans .split ())
190+ return "" .join (ans .split ())
198191 elif lang == "en" :
199- ans = '' .join (
200- map (
201- lambda x ,
202- g = decodingeng .get : g (x , ' ' ),
203- morse_text .split (' ' )
204- )
192+ ans = "" .join (
193+ map (lambda x , g = decodingeng .get : g (x , " " ), morse_text .split (" " ))
205194 )
206- return ' ' .join (ans .split ())
195+ return " " .join (ans .split ())
207196 else :
208197 raise NotImplementedError (f"This function doesn't support { lang } ." )
0 commit comments