-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
자소 합치기 기능의 일관성 있는 복합자음 합치기 #9
Comments
제가 생각했을 때도 T를 쌍시옷으로 사용하지 tt를 쌍시옷으로 사용할 일은 없다고 생각해요. 어떻게 생각하시나요? |
|
오 구글, 네이브 비교 자료 감사드립니다👏 const Map<String, List<String>> MIXED = {
...MEDIAL_MIXED,
...FINALE_MIXED,
}; |
말씀해주신대로 별개로 볼지 등 자소 합치기의 기준을 정해야겠네요! a) 복합자모를 탐욕적으로 모두 합침
b) 자모 키가 2번 눌리는 조합만 합침
c) 복합자모를 정리하지 않음
위의 특징들을 바탕으로 이 패키지의 방향에 따라 선택하면 어떨까요? 제 생각에는 주요 기능이 한글 자동완성과 한,영 변환인지 한글 자소분해인지에 따라 다를 것 같은데, 각 방식별 합쳐지는 대상 |
기능을 viiviii님께서 만드셔서 질문이 있습니다. enum ImplodeType {
greedy,
search,
normalize
}
String implode(String input, {ImplodeType type = ImplodeType.greedy}) {
/// 인접한 모음을 하나의 복합 모음으로 합친다.
final letters = mixMedial(input.split(''));
/// 모음으로 시작하는 그룹들을 만든다.
final createdGroups = createGroupsByMedial(letters);
/// 각 그룹을 순회하면서 복합자음을 정리하고, 앞 그룹에서 종성으로 사용하고 남은 자음들을 초성으로 가져온다.
final groups =
mixFinaleAndReplaceTheRemainingFinalesToInitials(createdGroups);
/// 각 글자에 해당하는 블록 단위로 나눈다.
final blocks = groups.fold<List<List<String>>>(
[], (acc, group) => acc..addAll(divideByBlock(group)));
return blocks.map(assemble).join();
} 이렇게하면 영 -> 한을 위한 자소 합치기와 |
최종적으로는 저렇게 타입을 받아서 옵셔널하게 제공할 수 있다고 생각합니다.😁 |
지금 현재 구현되어있는 건 |
네 하지만 위 내용대로 현재 완전 똑같다고 할 순 없습니다😅
|
아래 글자의 자소 합치기 결과는 어떻게 예상되시나요?
결과는
갔어
,갔어
,ㅂ봅비
입니다.개요
현재 상태
ㄱㅏㅅㅅ → 갔
,ㄱㅏㄴㅎ -> 갆
)ㅂㅂㅣ → ㅂ비
)제안
이유
복합 자음을 자소 합치기에서 제외해도 될 것 같다고 생각하는 이유는
영타 → 한타 기능
에서 복합 자음은 영어 대문자로 쓰일 것이기 때문입니다.rkTdj
→갔어
rkttdj
→갔어
보다는갓ㅅ어
를 썼을 가능성이 높음예상되는 변경사항
ㄱㅏㅅㅅㅇㅓ
는 이제갔어
가 아닌갓ㅅ어
로 합쳐짐MIXED
에서 ㄲ, ㅆ 제거됨주의사항
MIXED
를 사용하는 다른 곳의 동작이 어떻게 바뀔지 체크 필요이 작업으로 기대하는 것
assemble()
에서 초/중/종성을 한 번 더 합치는데, 초성 로직은 제외할 수 있음ㄱㄱㅣ → 끼
,ㅂㅂㅣ→ ㅂㅂㅣ
였던 일관성 개선제가 놓친 부분이나 제외 시 우려되는 부분 등 여러 의견 주세요!👏💪🏽
The text was updated successfully, but these errors were encountered: