본문으로 바로가기

파이썬 모스부호 변환기 - 1

category IoT/Raspberry Pi 2020. 7. 12. 18:38

모스부호란?

 

모스 부호 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 둘러보기로 가기 검색하러 가기 모스 부호 문자와 숫자 차트.[1] 모스 부호(Morse code)는 짧은 발신 전류(・)와 긴 발신 전류(-)을 적절히 조합하여[1] 알파벳과 숫��

ko.wikipedia.org

모스 부호(Morse code)는 짧은 발신 전류(・)와 긴 발신 전류(-)을 적절히 조합하여[1] 알파벳과 숫자를 표기한 것으로 기본적인 형태는 국제적으로 비슷하다. 미국의 발명가 새뮤얼 핀리 브리즈 모스가 고안하였으며, 1844년 최초로 미국의 볼티모어와 워싱턴 D.C. 사이 전신 연락에 사용되었다.

 

예시

 

M³ Translator

Possible to Morse ⇄ English, Korean, Japanese or etc. translator + analyzer

jinh.kr

https://jinh.kr/morse/

 

모스부호 변환에 필요한 한글에 대해 알아보기

우선 한국어에 대해 알아볼 필요가 있습니다.

국립국어원에 가보았습니다.

 

국립국어원

 

www.korean.go.kr

한글에는 초성, 중성, 종성이 있는데 '' 이라는 음절을 나눠보면

ㄱ : 초성

ㅏ: 중성

ㄱ: 종성

이라고 합니다.

 

다음 특징이 있는데..

국립국어원에 QnA를 보면 '' 는 초성, 중성으로 이루어진 음절이 아니고 중성으로만 이루어졌다고 합니다.

https://www.korean.go.kr/

 

하여튼 해당되는 사항은 아닙니다.

 

파이썬 자음 모음 분리 모듈구하기

NLTK, Mecab 에서는 지원하지 않았습니다.

구글링 하던 중 괜찮은 코드 발견!

 

neotune/python-korean-handler

python3.x 에서 작동하는 한글 초성, 중성, 종성 분해. Contribute to neotune/python-korean-handler development by creating an account on GitHub.

github.com

input your text:짜장면
ㅉㅏ#ㅈㅏㅇㅁㅕㄴ

input your text:왼손
ㅇㅚㄴㅅㅗㄴ

input your text:왕
ㅇㅘㅇ

 

모스부호의 규칙에는 한글의 된소리 이중모음은 없습니다.

wiki: 모스부호

분할해주어야 합니다.

 

위에서 얻은 코드를 수정해봅니다.

된소리, 이중모음까지 나누어주었습니다.

>> 짜장면
['ㅈ', 'ㅈ', 'ㅏ', 'ㅈ', 'ㅏ', 'ㅇ', 'ㅁ', 'ㅕ', 'ㄴ']

>> 왼손
['ㅇ', 'ㅗ', 'ㅣ', 'ㄴ', 'ㅅ', 'ㅗ', 'ㄴ']

>> 왕
['ㅇ', 'ㅗ', 'ㅏ', 'ㅇ']

 

모스부호 규칙과 맵핑하기

이제 모스부호 규칙을 긁어와서 맵핑하면 끝입니다.

wiki: 모스부호

 

더보기
KR = {
    'ㄱ': '・-・・',
    'ㄴ': '・・-・',
    'ㄷ': '-・・・',
    'ㄹ': '・・・-',
    'ㅁ': '--',
    'ㅂ': '・--',
    'ㅅ': '--・',
    'ㅇ': '-・-',
    'ㅈ': '・--・',
    'ㅊ': '-・-・',
    'ㅋ': '-・・-',
    'ㅌ': '--・・',
    'ㅍ': '---',
    'ㅎ': '・---',
    'ㅏ': '・',
    'ㅑ': '・・',
    'ㅓ': '-',
    'ㅕ': '・・・',
    'ㅗ': '・-',
    'ㅛ': '-・',
    'ㅜ': '・・・・',
    'ㅠ': '・-・',
    'ㅡ': '-・・',
    'ㅣ': '・・-',
    'ㅔ': '-・--',
    'ㅐ': '--・-'
}

 

모스부호로 정상적으로 변환되었습니다.

>> 짜장면
・--・ ・--・ ・ ・--・ ・ -・- -- ・・・ ・・-・

정답지.jpg

>> 배고프다
・-- --・- ・-・・ ・- --- -・・ -・・・ ・

정답지.jpg