하파와 데이터

[자연어처리]_메타코드 강의후기(자연어처리입문) 본문

스터디

[자연어처리]_메타코드 강의후기(자연어처리입문)

hhpp 2024. 6. 16. 01:52

메타코드 메인페이지

 

메타코드라는 사이트를 알게 되었다. 처음에 알게된건, ADsP 강의

 

비전공자로서, ADsP 자격증을 취득하려는데, 책으로만 공부하기엔 너무 버거운 마음이 컸다. 그래서 유튜브를 찾다가 

시험강의를 무료로 해주는 곳이 있어서 강의를 듣고 봤더니 메타코드. 

 

좋은 강의 덕분에 운이 좋게, 시험을 잘 합격할 수 있었다. 

 

그로부터 메타코드에 대한 긍정적인 인식이 생겼고, 데이터 분석가로 취업을 준비하면서는 현직자를 강사로하여 취업시장 또는 직무에 대한 설명을 해주는 시간을 무료로 제공하여 더 인상이 좋게남았다. 

 

그런데, 메타코드 서포터즈라는 것을 선발하고, 선발이 되면 양질의 교육 자료를 무료로 수강할 수 있는 기회가 주어진다고 한다. 이에 놓치지 않고 지원했고, 운이 좋게 선발 되었다.

 

현재는 다음주에 있을 빅분기 실기 자격증 취득을 위한 강의를 들으려 했으나, 아직 강의를 듣도록 내 계정에 셋팅이 되지 않아서, 우선 계속 관심이 있던 자연어 처리 분야를 듣기로 결심했다!! 

 

자연어처리 입문 강의

 

이번 강의를 신청했는데, 처음에는 오 뭐지? 라는 생각이었다. 첫번째는 강사님의 얼굴이 강의 소개에서의 사진과 느낌이 사뭇달랐고(머리가 많이 바뀌셨다) 그리고 1강만 있어서 뭔가 싶었는데, 역시 7시간짜리였다... 하하. 

쉽지 않은 여정이 될 것을 알게 되었다. 처음에는 바로 켠김에 오늘 강의를 끝내야지 싶었는데, 여유로운 마음으로 하루 1시간 정도씩으로 나눠서 봐야하지 않을까 걱정이다.. 하하 

 

첫 시작은 인간과 컴퓨터, 자연어와 기계를 구분하는 것으로 한다. 0과 1이라는 이진수를 기반으로 무언가를 이해하는 컴퓨터가 a,b,c 또는 ㄱ, ㄴ, ㄷ을 사용하는 인간의 언어를 구분하는가 그리고 그것을 어떻게 이해하고 받아들이는가에 대한 접근이 첫번째였다. 이 개념에서 자연어는 보편적인 언어체계에서의 우리의 언어 전체를 뜻하고, 이러한 자연어를 컴퓨터가 이해할 수 있는 방법으로 처리하는 것 즉, 이진수로 이것을 표현하는 것이 자연어 처리라고 할 수 있다. 

 

이렇게 알려주신 자연어를 기계 즉, 컴퓨터가 이해할 수 있도록 처리하는 '자연어처리'(NLP)과정을 실생활에서 이해할 수 있도록 많은 예시를 보여주며, 각 예시별로의 과정을 함께 설명해주신다. 챗본, 시리, 파파고 등 어떤 특징을 가지고 있고, 그 기능을 위해서 어떠한 과정 또는 기술이 접목되는지도 함께 알 수 있다. 나는 개인적으로 HMM이라는 모델이 신기했다. 문장의 일부만으로 앞으로 나올 것을 안다는 것. 예를들면 '나는 오늘 저녁에 스테이크를' 이라는 단어들의 조합을 보면 HMM모델은 현재의 구조와 단어들을 조합했을때 나오지 않는 것들을 없애고, 나올만한 것들을 예측한다는게 참 신기했다. 

 

자연어 처리에 대한 도입의 설명과 대략의 개념이 끝나면 바로 형태소라는 이야기가 나온다. 뜬금없이 형태소라니. 고등학교 이후 들어보지 못했을법한 단어이다. 지난 부트캠프에서 NLP를 이용해 감정분석을 하며 내가 저런것 까지 알아야 하나 싶었던게 형태소 이런 부분이었다. 특히 이는 우리나라말인 한글에 있어서 특징을 갖는 것 같다. 한글의 경우 위치어가 아닌 정황어, 토씨어이기 때문에 단어가 위치하고 있는 곳 보다는 어느 정황에서 사용되었는지가 중요하다. 더불어 단어가 변화하기 때문에 단순히 단어로 끊기보다 형태소를 구분하여 이를 처리해야하는 작업이 필요하다. 이에 앞서 소개했던 것처럼 단순한 언어를 처리하는게 아니라 해당 언어의 특징을 담고 있는 언어 처리가 필요하다. 

 

토큰화가 어려운 점은 한글이 갖고 있는 형태소에 의한 단어 형태의 변화 뿐 아니라, 문장 기호 등의 특수성에도 있다. 강의에서 나온 것처럼 '-' 와 같은 대쉬가 사용되었을때, 대쉬를 기준으로 두 단어를 구분해서 볼 것인지 아니면 앞단어, 대쉬, 뒷단어를 각각 개별로 볼것인지 이러한 차이를 가지고 있다. AI를 겉핥기로 배우면서 어려웠던점이면서 흥미로웠던 점은, 모든 것이 AI와 컴퓨터로 될 것 같지만, 이러한 규칙과 논리의 기반은 사람이 정하고, 짠다는 것이다. 앞선 언급처러 대쉬를 기준으로 세개를 합칠 것인지 나눌 것인지 말이다. (참고로, 본인의 프로젝트에서는 고민하기 어렵기에 KOBERT 모델을 냅다 사용했다)

 

앞서 토크나이즈를 언급하면서도 사람의 개입여지가 여전히 존재한다고 말했었다. 사람의 개입여지는 정제 측면에서도 볼 수 있다. 강의화면 좌측에 나온 것같은 단어들은 일상적으로도 많이 사용하며 사람들에게 인지도가 높다. 반면 우측에 있는 단어는 책한권을 모두 입력한다고해도 한번도 발견되지 않을 수 있는 단어이다. 그렇기 때문에 우리가 저 특수한 단어를 그대로 딕셔너리에 넣어야 하는지 또는 불필요한 단어로 효율성을 위해 제거할 것인지 우리의 생각을 정하여 선택해야한다. 만일, 단어가 글 또는 문단에서 핵심이라면 지워선 안되겠지만, 중요도가 거의 없고 딱 한번만 겨우 등장하는 단어라면 저 단어를 정제과정에서 없애는 것도 하나의 방법이 될 수 있다. 

 

나도 이제 시작한 강의이지만, 아직까지의 생각으로는 큰 어려움 없이 NLP에 대한 개념을 잡을 수 있는 강의라고 생각한다. NLP 이야기만 들었다면, 이 무료강의를 통해 기본적인 개념을 이해할 수 있는 기회가 되길..! 아래링크를 참조하세요! 

 

https://www.metacodes.co.kr/edu/read2.nx?M2_IDX=31635&page=1&SC_WORD=%EC%9E%90%EC%97%B0%EC%96%B4%EC%B2%98%EB%A6%AC&sc_is_discount=&sc_is_new=&EP_IDX=8387&EM_IDX=8213

 

자연어처리 입문강의ㅣ서울대 AI 박사 [유료 전환 예정]

 

www.metacodes.co.kr