자연어처리 19

Sentiment 분석에 불필요한 텍스트 데이터 클리닝

IMDb 데이타를 읽어 들여 csv 데이타 포맷으로 변환한 상태에서 일부 데이타를 읽어 들여 문제점을 체크하기로 하자. 지난번 블로그의 csvconver.py 파이선 코드를 먼저 실행시키면 progress bar와 함께 수분의 시간이 소요되면서 처리가 완료된다. Pandas 명령어인 df.loc[0, ‘review’][-50:] 명령을 셸(Shell)에서 실행하여 얻어지는 출력 결과를 살펴보자. 이 명령은 랜덤하게 셔플된 영화 리뷰 데이타의 마지막 50글자를 출력시킨다. 이 출력 결과를 살펴보면 HTML 언어인 깍지형 브라켓과 슬래시 및 마침표를 포함하는 요소들이 포함되어 있음을 알 수 있다. HTML 편집 기호들은 문장의 의미와는 아무런 관련이 없으며 마침표의 경우는 약간의 관련성이 있을 수 있다. 하..

자연어처리 2022.07.01

tf-idf 단어 관련성 분석

Term Frequency: 문장(document) 에 특정 단어가 나타나는 빈도 수 Inverse Document Frequency : log (1 + 전체 문장(document) 수) /(1 + 문장 별로 특정 단어가 나타나는 횟수) 텍스트 데이타 분석 시에 부여된 클라스 값이 긍정적이나 부정으로 분류가 가능한 여러 문서에서 걸쳐서 빈번하게 출현하는 단어들 중에 이들이 쓸만한 정보 내지는 무언가 뚜렷한 정보를 포함하지 않는 경우들이 왕왕 있을 수 있다. 따라서 특징 벡터에 포함되어 나타나는 이러한 경향을 찾아내어 필터링할 수 있는 중요한 기법으로서 문서 빈도수(Document Frequency) 대비 단어 출현 빈도수(Term Frequency)를 알아보자. Inverse Document Freque..

자연어처리 2022.07.01

Bag of Words(단어장)에 의한 feature vector 생성

Bag of Words 란 일종의 숫자형 라벨을 붙인 단어장을 뜻한다. 영어 단어들로 구성된 문장들이 있으면 그 문장에서 사용된 단어들을 추려낼 수 있을 것이다. 만약에 “The”가 여러 번 사용되었다 해도 그 사용된 횟수가 아니라 그 단어 자체를 한번 단어장에 ID 숫자 번호를 매겨 등록할 필요가 있을 것이다. 학습해야 할 문장들이 많이 있다면 이 단어장은 결국 특정 텍스트 뭉치들에 대한 하나의 단어 사전(Corpus)이 될 수 있을 것이다. 일반 사전을 의미하는 Dictionary 와는 의미가 다르다. Dictionary는 모든 글과 말에 대한 표준적인 단어장으로서 Corpus 처럼 제한된 의미의 단어장과는 의미 차이가 크다. 아울러 특수한 단어장이 만들어지고 숫자명이 부여되었으면 각 문장들은 이 단..

자연어처리 2022.07.01

인터넷 영화 데이터베이스(IMDb) CSV 데이터 변환

머신 러닝이 이미 많이 컷는지 벌써 수능 시험에 도전하고 있다. 수능평가처럼 지문을 제시한 후에 문맥을 이해하고 있는지 질문하는 것이다. 질문 예를 들자. 헤리포터는 1997년부터 2007년까지 연제된 영국의 작가 조안 롤링의 판타지 소설 시리즈로서 이모네 집 계단 밑 벽장에서 생활하던 열한 살 소년 해리 포터가 호그와트 마법학교에 가게 되면서 겪게 되는 판타지 이야기를 그리고 있다. ∙∙∙ 질문: 해리는 호그와트에 들어가기 전에 어디서 살았나요? 머신 러닝이 풀어야 할 문제 사례이다. 결국 우리가 풀어야 할 문제와 아무런 차이가 없다. 학생들이야 시각적으로 문제를 읽어 보겠지만 머신 러닝은 파일을 읽어 들이면 된다. 파일의 성격에 따라서 그것이 웹이라면 문장의 의미 파악을 위해서 불필요하다고 생각되는 ..

자연어처리 2022.07.01

인터넷 영화 데이터베이스(IMDb) 데이터 Preprocessing을 위한 PyPrind 라이브러리 모듈 설치

하지만 이 데이터베이스를 직접 사용하기에 불편하므로 Pandas 에 적합한 CSV 데이터 파일 형태로 변환할 수 있도록 “Python Machine Learning” 의 저자들인 Sebastian Raschka 와 Vahid Mirjalili 가 제공하는 Preprocessing 용 PyPrind를 아래의 url 주소에서 다운받자. PyPrind는 코드 실행 중에 0~100% progress bar를 시각적으로 보여준다. 다운받는 위치는 윈도우즈10의 사용자 디렉토리로 정한다. https://pypi.python.org/pypi/PyPrind/ 하지만 2022년 이후의 아나콘다 spyder 사용자라면 Environments 를 클릭하여 들어간 사용자가 지정한 가상환경에서 Open Terminal 에 의해..

자연어처리 2022.07.01

Sentiment 코딩 연습을 위한 IMDb 다운로드

자연어 처리 Sentiment 분석에 머신 러닝을 응용해 보자. Sentiment 분석은 한편으로는 opinion mining 으로 불리우기도 한다. 지금이야 말로 인터넷 소셜 미디어 시대이기 때문에 사람들의 견해, 검토, 추천사항들이 비즈니스나 정치 사회과학 전체에 있어서 가치가 넘치는 소스가 되었기에 그러한 데이터들을 수집하여 대단히 효율적으로 분석해 보도록 하자. 이 분야는 Natural Language Propcessing 즉 약어로 NLP 분야의 한 분과인 센티멘트 분석(Sentiment analysis)이라고 칭한다. Sentiment 란 심리, 감정, 정서 내지는 여론이라고 보면 될 것이다. 특히 콘텐츠를 생산한 작가의 의중 즉 그것들의 양극방향으로의 쏠림에 근거한 문서들을 머신 러닝 알고리..

자연어처리 2022.07.01

SQuAD를 사용한 BERT Transformers 자연어 처리 Q&A

참조: BERT Based Q&A System http://education.abcom.com/bert-based-q-a-system/ Transformers 라이브러리를 사용하는 Q&A 문제를 다루어 보자. 인간은 항상 흥미로운 기사를 간단히 살펴봄으로써 내용을 파악하고 필요하다면 몇가지 간단한 질문을 떠 올릴 수 있다. BERT 의 Transformers 라이브러리에 의한 즉 사전 학습된 모델이 어떻게 학습되었는지 알아보자. 머신 러닝 모델 학습을 위해서는 다소 방대할 수도 있는 적절한 양의 데이터 세트가 필요하다. Q&A(질문과 답변) 모델을 개발하기 위해 미리 정의된 구절(passage: 여러개의 문장으로 구성된 단위)과 질문 세트에 대한 답변을 제시하기 위해 어느 정도 방대한 텍스트 모음을 사전..

자연어처리 2022.06.24

BERT Transformers 라이브러리를 사용한 자연어처리 [MASK]기법

Bidirectional Encoder Representations From Transformers 참조: BERT 101 ? State Of The Art NLP Model Explained https://huggingface.co/blog/bert-101?text=The+goal+of+life+is+%5BMASK%5D. 머신 러닝에 있어서 단일 수기문자를 인식하는 MNIST가 가장 잘 알려진 언어 관련 주제 일 것이다. 이 보다 더 나아가서 컴퓨터가 단어수준을 넘어서 문장을 이해하는 단계가 바로 인간의 지능에 근접한 인공지능화의 지름길일 것이다. 언어를 배워서 이해하고 자연스럽게 사용하게되는 과정을 살펴보면 초기 단계에는 하나 둘 간단한 단어를 중심으로 학습을 하게 되고 결국 어느 정도 규모가 있는 ..

자연어처리 2022.06.22

Simple Transformers 를 사용하는 자연어처리 BERT

Bidirectional Encoder Representations From Transformers 참조: Simple Transformers https://simpletransformers.ai/docs/qa-model/ 참조: Build a custom Q&A model using BERT in easy steps! https://medium.datadriveninvestor.com/build-a-custom-q-a-model-using-bert-in-easy-steps-241547d6310f 이미 자연어 처리를 위한 BERT 기법이 수년전부터 많이 알려져 있으나 초보자가 접근하기엔 난이도 문제도 있고 해서 다루어 보기 힘들기도 하며 여전히 까다로운 주제로 남아 있다. 처음부터 복잡해 보이는 알고리듬..

자연어처리 2022.06.22