한글 조사 처리 – 비오는날의 감자농장

생성일
Feb 27, 2020 12:11 PM
언어
Python
분야
URL
 
프로그램으로 한글을 사용하다보면 은/는, 이/가, 을/를 등의 어조사 처리가 필요한 경우가 많다.
사람들마다 여러방법으로 처리하겠지만 제일 간단한 것은 앞 글자가 받침을 가지고 있는냐 없느냐를 따지는것이다.
요즘엔 콘솔이나 PC나 전부 메모리 들이 넉넉하여 문자 코드에서 받침이 있는 문자인지를 조합형으로 풀어서 계산할 필요도 없으니 다음의 방법을 사용하면 간단히 처리 할 수 있다.
일반적으로 사용하는 11136자의 한글에서 받침이 없고 초성과 중성으로 이루어진 글자수는 399개…
비교하려는 글자를 399개 하고만 비교 하면 받침이 있는지 없는지를 판별 할 수 있다.
파이썬으로 만든 받침있는 글자인지를 판별하는 코드다.
NO_BAT_CHIM = { '가', '개', '갸', '걔', '거', '게', '겨', '계', '고', '과', '괘', '괴', '교', '구', '궈', '궤', '귀', '규', '그', '긔', '기', '까', '깨', '꺄', '꺠', '꺼', '께', '껴', '꼐', '꼬', '꽈', '꽤', '꾀', '꾜', '꾸', '꿔', '꿰', '뀌', '뀨', '끄', '끠', '끼', '나', '내', '냐', '냬', '너', '네', '녀', '녜', '노', '놔', '놰', '뇌', '뇨', '누', '눠', '눼', '뉘', '뉴', '느', '늬', '니', '다', '대', '댜', '댸', '더', '데', '뎌', '뎨', '도', '돠', '돼', '되', '됴', '두', '둬', '뒈', '뒤', '듀', '드', '듸', '디', '따', '때', '땨', '떄', '떠', '떼', '뗘', '뗴', '또', '똬', '뙈', '뙤', '뚀', '뚜', '뚸', '뛔', '뛰', '뜌', '뜨', '띄', '띠', '라', '래', '랴', '럐', '러', '레', '려', '례', '로', '롸', '뢔', '뢰', '료', '루', '뤄', '뤠', '뤼', '류', '르', '릐', '리', '마', '매', '먀', '먜', '머', '메', '며', '몌', '모', '뫄', '뫠', '뫼', '묘', '무', '뭐', '뭬', '뮈', '뮤', '므', '믜', '미', '바', '배', '뱌', '뱨', '버', '베', '벼', '볘', '보', '봐', '봬', '뵈', '뵤', '부', '붜', '붸', '뷔', '뷰', '브', '븨', '비', '빠', '빼', '뺘', '뺴', '뻐', '뻬', '뼈', '뼤', '뽀', '뽜', '뽸', '뾔', '뾰', '뿌', '뿨', '쀄', '쀠', '쀼', '쁘', '쁴', '삐', '사', '새', '샤', '섀', '서', '세', '셔', '셰', '소', '솨', '쇄', '쇠', '쇼', '수', '숴', '쉐', '쉬', '슈', '스', '싀', '시', '싸', '쌔', '쌰', '썌', '써', '쎄', '쎠', '쎼', '쏘', '쏴', '쐐', '쐬', '쑈', '쑤', '쒀', '쒜', '쒸', '쓔', '쓰', '씌', '씨', '아', '애', '야', '얘', '어', '에', '여', '예', '오', '와', '왜', '외', '요', '우', '워', '웨', '위', '유', '으', '의', '이', '자', '재', '쟈', '쟤', '저', '제', '져', '졔', '조', '좌', '좨', '죄', '죠', '주', '줘', '줴', '쥐', '쥬', '즈', '즤', '지', '짜', '째', '쨔', '쨰', '쩌', '쩨', '쪄', '쪠', '쪼', '쫘', '쫴', '쬐', '쬬', '쭈', '쭤', '쮀', '쮜', '쮸', '쯔', '쯰', '찌', '차', '채', '챠', '챼', '처', '체', '쳐', '쳬', '초', '촤', '쵀', '최', '쵸', '추', '춰', '췌', '취', '츄', '츠', '츼', '치', '카', '캐', '캬', '컈', '커', '케', '켜', '켸', '코', '콰', '쾌', '쾨', '쿄', '쿠', '쿼', '퀘', '퀴', '큐', '크', '킈', '키', '타', '태', '탸', '턔', '터', '테', '텨', '톄', '토', '톼', '퇘', '퇴', '툐', '투', '퉈', '퉤', '튀', '튜', '트', '틔', '티', '파', '패', '퍄', '퍠', '퍼', '페', '펴', '폐', '포', '퐈', '퐤', '푀', '표', '푸', '풔', '풰', '퓌', '퓨', '프', '픠', '피', '하', '해', '햐', '햬', '허', '헤', '혀', '혜', '호', '화', '홰', '회', '효', '후', '훠', '훼', '휘', '휴', '흐', '희', '히', } def has_bat_chim (hangul_char): if hangul_char in NO_BAT_CHIM: return False return True __all__ = [ 'has_bat_chim' ]