영어: a와 an의 구분
1 week ago
26
- 영어 부정관사 a와 an은 단어의 첫 글자가 아니라 첫 발음이 모음인지에 따라 선택함
- 절차적으로 텍스트를 생성할 때 사용할 a_or_an("apple") 같은 함수는 첫 글자만 검사하면 a unicorn을 an unicorn으로 잘못 출력함
- unicorn은 모음 글자 u로 시작하지만 자음 소리로, hour는 자음 글자 h로 시작하지만 모음 소리로 시작함
- 예외의 빈도와 유형별로 묶을 수 있는지를 데이터와 시각화로 살펴본 결과, 사용한 목록의 32,455개 단어 중 129개만 예외 처리가 필요했음
- 구현에 LLM을 사용하지 않았지만, 정확성만 필요했던 일회성 코드인 만큼 LLM을 활용하고 트라이 단순화 알고리듬에 더 시간을 쓰는 편이 나았겠다고 판단함
철자가 아닌 발음으로 관사 선택
- 영어에서는 a raccoon, an apple처럼 단어 앞에 부정관사 a 또는 an을 붙임
- 절차적 텍스트 생성용 a_or_an("apple") 함수를 첫 글자의 모음 여부만으로 구현하면 unicorn 같은 단어에서 틀림
- unicorn의 첫 글자 u는 모음이지만, 첫소리는 자음으로 cmudict에서는 Y, IPA에서는 /j/임
- hour의 첫 글자 h는 자음이지만, 첫소리는 모음으로 cmudict에서는 AW, IPA에서는 /aʊ/임
예외 분석과 일회성 코드 구현
- 예외가 얼마나 자주 나타나고 함께 묶을 수 있는지 알아보기 위해 하루 동안 데이터를 분석하고 시각화를 만든 뒤 분석 결과를 정리함
- 시각화에서는 단어의 첫 두 글자만으로 a와 an을 결정할 수 있는지 살펴봄
- 사용한 단어 목록 32,455개 중 129개만 예외 처리가 필요했음
- 코드를 작성할 때 LLM은 사용하지 않았으나, 돌아보면 활용하는 편이 나았겠다고 판단함
- 질문 하나에 답하기 위한 일회성 코드여서 코드의 깔끔함이나 유지보수성보다 정확성만 필요했음
- LLM을 썼다면 cmudict 파싱과 d3.js 재학습에 시간을 덜 쓰고, 트라이 단순화 알고리듬에 더 집중할 수 있었을 것으로 봄
-
Homepage
-
Tech blog
- 영어: a와 an의 구분