[Python] 연습

[python] 한국어 띄어쓰기 처리

Simon Yoon 2022. 11. 13. 23:38

한국어 문장을 처리할 때, 문장 내 띄어쓰기에도 주의해야한다.

띄어쓰기가 어디에 되어있는지에 따라 다른 의미로 해석될 가능성이 존재하기 때문이다.

아래의 예시를 보자.

 

1) 엄마가 회사 줬어
2) 엄마가 회 사줬어

 

두 문장의 의미가 띄어쓰기에 따라 완전히 달라진다는 것을 확인할 수 있다.

이렇기 때문에 텍스트 데이터를 분석할 때 띄어쓰기가 제대로 되어있도록 교정해주는 작업이 필요하다.

 


PyKoSpacing 패키지

띄어쓰기가 되어있지 않은 문장을 띄어쓰기 처리를 해주는 패키지고 PyKoSpacing 이 있다.

PyKoSpacing is based on Deep Learning model trained from large corpus(more than 100 million NEWS articles from Chan-Yub Park).

참고로 R 에서도 사용할 수 있는 라이브러리를 제공하고 있다.

 

일반적인 텍스트 데이터를 사용하는 경우, 대부분 띄어쓰기가 되어있는 상태로 수집될 가능성이 크다.

따라서 사용 전에는 띄어쓰기를 없애주는 작업을 진행하고 해당 라이브러리를 사용해서 띄어쓰기 처리를 한다.

 

Example

  • prerequisite
pip install tensorflow
pip install keras

 

  • Installation
!pip install git+https://github.com/haven-jeon/PyKoSpacing.git

 

  • 간단한 예제

먼저, 예제 텍스트를 띄어쓰기가 없는 문장으로 만들어준다.

text = '최근 주요 시중은행에서 주택담보대출을 받는 금융소비자 가운데 70% 이상이 고정금리를 선택하고 있는 것으로 나타났다.'
# 띄어쓰기가 없는 문장으로 만들기
text_nospace = text.replace(" ", '')
print(text_nospace)

 

이후 pykospacing 을 사용하여, 새로 띄어쓰기를 해준다.

from pykospacing import Spacing
spacing = Spacing()
kospacing_result = spacing(text_nospace) 

print(text)
print(kospacing_result)

위의 예시에서는 원본과 새로 띄어쓰기 처리를 한 결과가 동일함을 확인할 수 있다.

 

 

GitHub - haven-jeon/PyKoSpacing: Automatic Korean word spacing with Python

Automatic Korean word spacing with Python . Contribute to haven-jeon/PyKoSpacing development by creating an account on GitHub.

github.com