NLP 과정에서 숫자 -> 수사로 변형할 때
num2words 패키지의 한국어 모듈을 사용하면
1 -> '일' , 2 -> '이' . 이렇게 고유어로만 변형된다.
이런 식으로 변형하면 문장에 들어갔을 때 ' 저거 일개 , 이거 이개' 라는 느낌으로 자연스럽지 않은 문장이 되기때문에
나는 숫자를 고유어가 아닌 관형사로 변형하길 원했다. ( 예: 1 -> '하나 , 한' )
다행히도 어느 훌륭하신 분이 노가다를 통해 이런 숫자 -> 한국어 수사 변형 패키지를 구현해 놓으셨다.
패키지로 배포는 안해놓으셨고 그냥 py 파일을 가져다 쓰면 된다.
위 패키지를 사용하다가 문제가 발생했는데,
일의자리 숫자는 변형이 되지 않는 문제다.
다음의 코드로 해결하였다.
def _구현(gnum, 고유어여부 = False, 서수사여부 = False, 관형사및명사여부 = False):
negative = False
if int(gnum) == 0:
return '영'
elif int(gnum) < 0:
gnum = str(-int(gnum))
negative = True
#추가구현
elif int(gnum)<10:
num = n2w(gnum,lang='ko')
return 일의자리_고유어[num][1]