미래내일일경험 - 빅리더(23.06~23.12)/교육

[스터디챌린지] ICT융합대학 스터디 챌린지 4주차(7/22 ~ 7/28)

NINE1ll 2023. 7. 27. 23:50

NLP : Natural Language Processing, 자연어 처리

import konlpy
from konlpy.tag import Okt

okt = Okt()
print(okt.morphs(u'아버지가방에들어가신다.'))

morphemes : 형태소
위의 코드는 okt 모델로 형태소 분석하겠다라는 의미를 그냥 코드로 쓴거다.
함수 사용법 : okt.morphs(phrase, norm=False, stem=False)
문자열 앞의 u는 이유는 모르겠지만 그냥 공식문서 예시에도 들어가 있다.

보면 okt는 생각보다 멍청하다.

import nltk
from nltk.tokenize import word_tokenize

text = """Don't And that’s exactly the way with our machines.
In order to get our computer to understand any text,
we need to break that word down in a way that our machine can understand.
That’s where the concept of tokenization in Natural Language Processing (NLP) comes in."""

print("단어 토큰화 결과 : ", word_tokenize(text))
# 따라서 밑의 결과는 결국 문장을 토큰, 의미있는 단위로 나눈 것이라고 할 수 있다.

그니까 여기서 tokenize는 문장을 띄어쓰기 단위로 나눈다는 것인데, 잘 보면 Don't 를 Do와 n't로 나눈 것을 볼 수 있다.
토큰의 단위는 상황에 따라 다르지만, "보통 의미있는 단위"로 토큰을 정의한다.
자연어 처리에서 크롤링 등으로 얻어낸 코퍼스 데이터가 필요에 맞게 전처리되지 않은 상태라면,
해당 데이터를 사용하고자하는 용도에 맞게 토큰화(tokenization) & 정제(cleaning) & 정규화(normalization)하는 일을 하게 됩니다.