Web Analytics Made Easy - Statcounter

Bouncing ideas 생각 작업실/exp sharing 경험.실험 나누기

실시간으로 한국어 최소대립쌍을 산출해보자

sleepy_wug 2023. 2. 14. 08:29

0. 요약

베타버전입니다. 

 

음소 2개를 선택하면 자동으로 한국어 최소대립쌍 찾아주는 웹앱입니다. 많은관심부탁드립니다.

 

최소대립쌍 찾아주기

 

 

(혹시 바로 아래에 아무것도 안뜨고 흰 공백만 보인다면, 앱이 로드되는 중이므로 5초에서 10초정도 기다리시거나 '새로고침'해주세요)

 

사용법 예시:

 

 

 

앱이 마음에 드셨으면 아래버튼을 눌러서 기부하실 수 있습니다. 모든 수입은 유지비로 사용됩니다. 감사합니다 🥰

 

 

1. 베타

일단 앱을 띄워는 놓았는데, 뭐 땅파면 돈이 나오는 것도 아니고, 돈내면서 계속 서버를 켜놓을 수는 없다. 내가 돈이 많거나 희생정신이 투철해서 "연구자 커뮤니티를 위해 기부하겠습니다"할 깜냥도 아니고.ㅋㅋㅋ 그래서 30분 inactive 상태면 앱이 잠들게 해놓았다. 만약 (그럴일이 없겠지만) 트래픽이 너무 많이 발생한다면 앱을 내릴 생각이다.

 

2. 베타 단계에서 알려진 이슈들

(업데이트: 2024-03-13)

반응형

2.1 심각한 문제

  • [h] [ŋ] 최소대립쌍이 있다고 한다...
    • 음절개념이 없어서 사형 - 상영 이 최소대립쌍인 것처럼 출력한다. 

 

2.2 성능관련

  • 단어가 많아지면 연산속도가 너무 느려진다.
    • 해결방안: 대상단어군의 사이즈 줄이기.
    • 한국어 단어군은 닫힌 시스템이기 때문에, 어떤 경우에도 다른 단어와 최소대립쌍을 이루지 않는 단어가 존재한다. 그러한 단어들을 제거하면, 기능 저하 없이 연산속도를 높일 수 있을 것이다.
    • 이 방안을 구현하는 하나의 방법은 음운이웃 개념을 이용하는 것이다. 음운이웃은 최소대립쌍의 넓은 범주이다. 음운이웃 중 '유사 음소 간 대치에 의한' 음운이웃의 경우만 최소대립쌍에 해당한다. 따라서 음운이웃이 없는 단어는 필연적으로 최소대립쌍에 고려되지 않는다.
  • 불규칙발음형 반영해야 한다.
    • e.g., 감방 [감빵] 은 규칙으로 도출되지 못하기 때문에 kampang으로 들어가있음. 그래서 감방-남방 이 최소대립쌍이라는 잘못된 결과가 나옴
    • 해결방안: raw data에 현실발음형 반영하기
    • 구체적으로, Kang & Kim (2009)을 기반으로 하되, 특정 표제어에 대하여 표준국어대사전 DB에서 발음 제공하는 경우 (아마도 불규칙 발음형) 해당 발음형을 우선 반영하자.

 

2.3 파라미터  추가

  • 품사 파라미터 추가 필요.
  • 어종 (한자어/고유어/외래어) 파라미터도 추가 필요.
  • 자음의 경우, coda onset 등 음절내부구조 파라미터를 추가해서 해당 조건에 맞는 최소대립쌍만 출력할 수 있으면 좋겠다.
  • 단어처음, 단어중간, 단어끝 등 단어 내 위치에 따른 파라미터도 추가해야 한다.

 

2.4 UI 관련

  • 웹앱 외관이 너무 고리타분하다. 2000년대 중반에 나온 앱같다.
    • 해결방안: 없음. 예쁜 웹앱 디자이너 늘 환영합니다. (의도적 중의성)
  • 결과표를 다운로드 받을 수 있도록 만들어주세요.

 

2.5 나 자신으로부터의 이슈

  • 이 앱의 이름은 뭐로 해야 하지? Hangul to IPA 같이 짧으면서도 직관적인 이름이 있으면 좋겠는데 Korean minimal pair finder라는 working title은 너무 지루하다.
    • .... 그리고 이와 관련된 유명한 quote
There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton

Korean minimal pair finder

  • 앱 이름과 관련하여, 이건 어떨까? "한국어 최소대립쌍"하면 음운론자들이 거의 조건반사 식으로 말하는 게 "달탈딸"이니까 그걸 차용해서
    • "둘뚤툴", stylized as "tul-t*ul-tool" 하하하하하하하하하하 ㅋㅋㅋㅋㅋㅋ
  • 앱 내에 광고를 넣으려면 어떻게 해야하지?

 

이후 이슈 트래킹은 github을 통해서 하겠습니다. [링크]

 

GitHub - stannam/Minimal_pairs_in_Korean: Why did nobody make this app already?

Why did nobody make this app already? Contribute to stannam/Minimal_pairs_in_Korean development by creating an account on GitHub.

github.com

 

3. 해결된 이슈

어느 누구도 해결된 이슈 다시 보는 걸 좋아하지 않기 때문에 접어놓는다. 

더보기

 

  • 동일 음소 선택하는 것이 가능하고, 이러할 경우 프로그램이 퍼져버린다. (아래 그림 참조)
    • 해결방안: it's not a bug it's a feature 같은 음소 선택가능한 것은 버그가 맞다. 입력단계에서 막아야 한다.
  • 결과표가 너무 길어질 경우 스크롤 압박이 심하다.
    • 해결방안: CSS property max-height 설정 [링크]
  • 결과창에서 최소대립쌍 개수가 몇개인지 당장에 보여주어야 함
  • Step 3까지 간 다음 새로운 음소쌍으로 search 하고 싶은 사람을 위해서 "reset" 버튼 필요

 

 

 

 

4. 후일담

설명서 안 읽고도 사용자가 딱 보면 바로바로 쓸수있는 직관적인 물건을 만드는 센스가 나에게도 있으면 좋겠다. 음운론에는 그런 센스가 넘치는 앱이 몇개 있다. pink trombone 이나 Interactive Sagittal Section 등등이다. 이런 것들이 롤모델이다.

 

인터페이스 말고 백엔드 측면으로는 PCT에서 사용하는 최소대립쌍 검색 알고리즘을 재현해 본 것이 상당히 큰 공부가 되었다. 한마디로 요약하자면 '각 단어에 대하여, 입력받은 두 음소를 #로 교체하였을 때 neutralize되는 단어의 쌍'을 최소대립쌍으로 연산하는 방식이다. 이 알고리즘에 대해서는 별도의 포스팅을 파야할 것이지만, neutralized된 단어형을 파이썬의 dictionary object의 key로 받고 연산 결과를 출력할 때 해당 key의 value를 출력하는 방식은 매우 창의적이다. 비록 이번 웹앱에서는 한 쌍의 음소만으로 연산하기 때문에 brute force로 단어x단어 비교하는 방식과 비교해서 성능차이가 크지 않지만, 음소 여러쌍을 고려해야 할 경우에는 유의미한 차이가 있다. 예를들어, PCT의 functional load 기능에서의 경우와 같이 '음운자질' 간의 최소대립쌍 을 연산해야 할 경우를 말한다.

 

 

 

 

 


  • 아래에 댓글창이 열려있습니다. 로그인 없이도 댓글 다실 수 있습니다.
  • 글과 관련된 것, 혹은 글을 읽고 궁금한 것이라면 무엇이든 댓글을 달아주세요.
  • 반박이나 오류 수정을 특히 환영합니다.
  • 로그인 없이 비밀글을 다시면, 거기에 답변이 달려도 보실 수 없습니다. 답변을 받기 원하시는 이메일 주소 등을 비밀글로 남겨주시면 이메일로 답변드리겠습니다.

 

반응형