형태소 분석 이전에 문자열의 정상 유무는 이후 분석 품질에 지대한 영향을 미친다. 최근 음성인식 정확도가 높아짐에 따라 많은 음성데이터가 Text로 변환되고 분석되기 시작했는데, 이를 위해 잘 동작하는 띄어쓰기 엔진은 텍스트 분석에서 거의 필수적인게 되어 버렸다. 또한 트위터나 페이스북의 사용자 생성 데이터를 분석하기 위해서 일종의 정규화 작업이 필수이며 양질의 띄어쓰기 엔진 확보가 점차 중요해지고 있다.
개인적으로 이런 저런 시도를 해오면서 큰 진전이 없다가 작년부터 어떻게 하면 딥러닝으로 한글 자동 띄어쓰기를 잘 해볼까 라는 고민을 하기 시작했고 이번 추석 연휴를 기회로 쓸만한 띄어쓰기 엔진이 만들어져 간단한 API로 공개해본다. 세종 코퍼스 1만 문장 기준 94.8% 그리고 최근 뉴스 기사 기준 95.3%의 띄어쓰기 정확도를 가지는 엔진으로 박찬엽씨가 수집/공유해준 2017년도 뉴스 기사 중 1억 문장으로 학습되었다.
딥러닝 기반의 첫 시도는 KoWordSpacing Git에 공개되어 있으나 현재 이 방식하고는 상당부분 달라졌고, 그렇게 개선된 딥러닝 아키텍처 덕분에 성능향상이 두드러졌다고 판단하고 있다. 관련 아키텍처는 별도 기회(논문이나 기고)를 통해 공유를 할 생각이다.
아래와 같은 방식으로 API를 사용할 수 있으며, 호출 건수에 대해서 별도의 제한은 없으나, 1회 호출에 200글자로 글자수를 제한하고 있어 문장단위로 입력을 하면 띄어쓰기가 된 문장을 리턴받을 수 있다.
Python
기반 (>= 3.3)
from requests import put
spaced_sent = put('http://35.201.156.140:8080/spacing',
data={'sent':"최근음성인식정확도가높아짐에따라많은음성데이터가Text로변환되고분석되기시작했는데,이를위해잘동작하는띄어쓰기엔진은거의필수적인게되어버렸다."}).json()
print(spaced_sent['sent'])
## 최근 음성인식 정확도가 높아짐에 따라 많은 음성데이터가 Text로 변환되고 분석되기 시작했는데, 이를 위해 잘 동작하는 띄어쓰기엔진은 거의 필수적인 게 되어버렸다.
R
기반
library(reticulate)
requests <- import('requests')
spaced_sent <- requests$put('http://35.201.156.140:8080/spacing',
data=list(sent="아래와같은방식으로API를사용할수있으며,호출건수에대해서별도의제한은없으나,1회 호출에200글자로글자수를제한하고있다."))$json()
print(spaced_sent$sent)
## [1] "아래와 같은 방식으로 API를 사용할 수 있으며, 호출 건수에 대해서 별도의 제한은 없으나, 1회 호출에 200글자로 글자수를 제한하고 있다. "
딥러닝 기반 한글 자동 띄어쓰기 API 공개 by from __future__ import dream is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.