sent = '김철수는 극중 두 인격의 사나이 이광수 역을 맡았다. 철수는 한국 유일의 태권도 전승자를 가리는 결전의 날을 앞두고 10년간 함께 훈련한 사형인 유연재(김광수 분)를 찾으러 속세로 내려온 인물이다.'
new_sent = sent.replace(" ", '') # 띄어쓰기가 없는 문장 임의로 만들기
from pykospacing import Spacing
spacing = Spacing()
kospacing_sent = spacing(new_sent)
3) 맞춤법 검사
py-hanspell 라이브러리
네이버 맞춤법 검사기를 이용한 파이썬용 한글 맞춤법 검사 라이브러리
[ Installation ]
github 에서 직접 다운 받아야 하고, 코드 수정이 필요함
[ Usage ]
from hanspell import spell_checker
sent = "맞춤법 틀리면 외 않되? 쓰고싶은대로쓰면돼지 "
spelled_sent = spell_checker.check(sent)
hanspell_sent = spelled_sent.checked
print(hanspell_sent)
맞춤법 틀리면 왜 안돼? 쓰고 싶은 대로 쓰면 되지
4) Tokenizing ( Pos Tagging )
형태소 분석하기
soynlp / konlpy / kiwi / khaiii 등 다양한 라이브러리 존재
각 형태소 분석기 마다 장단점이 있기 때문에 데이터셋에 맞게 사용하는 것이 좋다.
4-1. KoNLPy
한국어 정보처리를 위한 파이썬 패키지로 형태소 분석 외에도 다양한 기능을 지원하고 있다.
형태소 분석에는 Kkma / Komoran / Hannanum / Okt / Mecab 5개 모델이 있다.
4-2. Kiwi
빠른 속도와 범용적인 성능을 지향하는 한국어 형태소 분석기 라이브러리
[ Installation ]
pip install kiwipiepy
[ Usage ]
from kiwipiepy import Kiwi
kiwi = Kiwi()
text = "맞춤법 틀리면 왜 안돼? 쓰고 싶은 대로 쓰면 되지"
result = kiwi.analyze(text)
print(result)
from khaiii import KhaiiiApi
api = KhaiiiApi()
for word in api.analyze("안녕, 세상."):
print(word)
안녕, 안녕/IC + ,/SP
세상. 세상/NNG + ./SF
5) Stemming
동사를 원형으로 바꾸기
고유 명사와 일반 명사는 그대로 단어를 추가하고, 동사와 형용사의 경우 '다'를 붙여준다.
아래 코드는 Khaiii 형태소 분석기를 이용한 코드
def stemming(sentence):
morphtags = morphs = [(morph.lex, morph.tag) for word in KhaiiiApi().analyze(sentence) for morph in word.morphs]
words = []
for lex, tag in enumerate(morphtags) :
if tag=='NNP' or tag=='NNG' :
words.append(lex)
elif tag=='VA' or tag=='VV' :
words.append(lex+'다')
return words