728x90
반응형
SMALL
PHP로 한국어 격조사 자동 추가하기
안녕하세요! 오늘은 PHP를 사용하여 한국어 단어에 격조사를 자동으로 추가하는 방법에 대해 알아보겠습니다. 특히 주격 조사 '이/가'와 목적격 조사 '을/를'을 단어의 받침 유무에 따라 올바르게 추가하는 함수를 만들어 보겠습니다.
격조사란?
격조사는 문장에서 단어의 문법적 기능을 나타내는 조사입니다. '이/가'는 주격 조사로 주어를 표시하고, '을/를'은 목적격 조사로 목적어를 표시합니다.
PHP 함수 구현
다음은 단어에 격조사를 추가하는 PHP 함수입니다:
function addParticle($word, $type = 'subject') {
$lastChar = mb_substr($word, -1, 1, 'UTF-8');
$codePoint = mb_ord($lastChar, 'UTF-8');
if ($codePoint >= 0xAC00 && $codePoint <= 0xD7A3) {
$jongseongIndex = ($codePoint - 0xAC00) % 28;
$hasJongseong = $jongseongIndex !== 0;
} else {
$hasJongseong = false;
}
switch ($type) {
case 'subject':
return $word . ($hasJongseong ? '이' : '가');
case 'object':
return $word . ($hasJongseong ? '을' : '를');
default:
return $word;
}
}
함수 설명
mb_substr()
로 단어의 마지막 글자를 추출합니다.mb_ord()
로 마지막 글자의 유니코드 값을 얻습니다.- 한글 유니코드 범위(0xAC00 ~ 0xD7A3)인지 확인합니다.
- 한글이면 받침 유무를 계산하고, 아니면 받침이 없다고 가정합니다.
- 받침 유무와 조사 유형에 따라 적절한 조사를 추가합니다.
사용 예시
$words = ['학생', '의사', '대행사명', '컴퓨터'];
foreach ($words as $word) {
echo $word . ' (주격): ' . addParticle($word, 'subject') . "\n";
echo $word . ' (목적격): ' . addParticle($word, 'object') . "\n\n";
}
결과
학생 (주격): 학생이
학생 (목적격): 학생을
의사 (주격): 의사가
의사 (목적격): 의사를
대행사명 (주격): 대행사명이
대행사명 (목적격): 대행사명을
컴퓨터 (주격): 컴퓨터가
컴퓨터 (목적격): 컴퓨터를
이 함수를 사용하면 한국어 텍스트 처리나 자연어 생성 시 매우 유용할 것입니다. 문장을 더 자연스럽게 만들거나, 사용자 입력을 처리할 때 활용할 수 있습니다.
앞으로 이 함수를 확장하여 다른 조사들도 처리할 수 있도록 개선할 수 있겠죠? 여러분의 프로젝트에 맞게 수정하고 발전시켜 보세요!
728x90
반응형
LIST
'개발자 인생 > PHP' 카테고리의 다른 글
[PHP] 세션 하이재킹(Session Hijacking)에 대한 이해와 방어 전략 (0) | 2024.11.04 |
---|---|
PHP 초보자도 쉽게 배우는 방법: W3Schools 튜토리얼 소개 (0) | 2024.07.05 |
[PHP] 일정시간 이후 세션 만료시키기 (0) | 2020.12.01 |