<Notes
- wikidocs는 정말 고트 아닌가요..
- 유익한 정보를 무료로 나누는 모든 분들 존경합니다
주어진 코퍼스에서 토큰이라 불리는 단위로 나누는 작업을 토큰화라고 한다. 무엇을 토큰의 기준으로 하느냐가 중요하겠지?
토큰의 기준을 단어
로 하자. 내가 말하는 단어는 단어 단위 외에도 단어구, 의미를 갖는 문자열로도 간주된다.
Thank you for reading my velog posting.
'Thank', 'you', 'for', 'reading', 'my', 'velog', 'posting'
위 문장의 구두점(.,!?; 등)을 제외한 토큰화 작업의 결과는 다음과 같다. 띄어쓰기를 기준으로 잘라냈다고 봐도 좋다.
토큰화를 띄어쓰기만으로 진행하면 어떨까..?
한글은 토큰화를 하기 매우 어려운 언어다 ㅋㅋㅋㅋ하지만 제일 아름답죠
무튼 우리는 구두점을 제외할지, 영어라고 생각하면 아포스트로피는 제외할지 와 같이 끊임없이 토큰화를 위한 아이디어를 고안해야 할 것이다.
대표적으로 NLTK는 영어 코퍼스를 토큰화하기 위한 도구들을 제공하는데
from nltk.tokenize import word_tokenize
from nltk.tokenize import WordPunctTokenizer
우선은 이정도만 알아두자 ㅎㅎ
왜냐면 결국 메인은 이렇게 토큰화를 시도하는 수많은 도구들이 존재한다는 것이다.
토큰의 기준으로 단어
가 있다면 토큰의 기준이 당연히 문장
도 될 수 있는 법이다.
역시 내 글을 읽는 사람들에게 하고 싶은 말은 이거다,
토큰의 기준으로 무엇을 세우더라도.. 스스로..? 어떻게 토큰화를 할 수 있을지 생각해보는 역량?을 기를 수 있기를 바란다.
위 문장은 무엇을 기준으로 문장 토큰화를 할 수 있을지도 말이다. .을 기준으로? ?를 기준으로?
이런 생각을 하다보면 결코 토큰화는 쉬운 일이 아니라는 깨달음을 얻을 수 있다.. 특히 한글은 더 ㅋㅋㅋㅋ
한글은 영어와는 다른 교착어
이다. 무슨 말이냐면 조사, 어미 등을 붙여서 말을 만드는 언어를 말한다.
국어 다 까먹었다ㅋㅋㅋ 역시 모든 과목에서 example과 counter example은 필수다.
- 한국어에는 다양한 조사가 존재한다.
-> 그가, 그에게, 그를, 그와, 그는- 형태소 : 뜻을 가진 가장 작은 말의 단위
-> 자립 형태소 : 그 자체로 단어가 되는 자립하여 사용할 수 있는 형태소
-> 의존 형태소 : 다른 형태소와 결합하여 사용되는 형태소- 준호가 밥을 먹었다 :
준호(자립) + 가(의존) + 밥(자립) + 을(의존) + 읽(의존) + 었(의존) + 다(의존)
이렇게 보면 띄어쓰기가 영어만큼 깔끔하지 않다는 것을 알 수 있다.
하지만 한국인,,, 참 위대하지 않은가
한국인이 만든 자연어 처리 패키지 안에는 수많은 형태소 분석기가 존재한다.
이것도 각각이 어떻게 형태소 분석을 하고 있는지 보기보다는 무엇이 있는지만 보고 넘어가자.
from konlpy.tag import Okt
from konlpy.tag import Kkma
okt = Okt()
kkma = Kkma()
okt.morphs() : 형태소 추출
okt.pos() : 품사 태깅
okt.nouns() : 명사 추출
### 이 외에도 메캅(Mecab), 코모란(Komoran), 한나눔(Hannanum)이 있다.
<에필로그>
진짜 형태소 분석 가능하냐 이거 ㅋㅋㅋㅋㅋ
집은 가까우나 가야할 길은 멀다..
아자아자