자연어처리 21

IMDb 영화등급 설정 파라메터 연구 사례

수많은 영화들이 성공적 흥행을 목표로 쏟아지고 있는 미디어 세계에서 개봉 이전에 광고 중인 영화의 등급(rate) 예상에 관한 사례를 살펴보자. IMDb 영화 리뷰에 의한 학습 및 테스트에서처럼 개봉 이후 충분히 확보된 영화 리뷰 결과를 사용하여 머신 러닝 시키는 경우도 있겠지만 반면에 본능적인 평가를 택하는 경우도 있을 수 있다. 하지만 지금도 수없이 쏟아지는 영화들에 대해서 영화 리뷰 데이터나 본능을 배제하는 좀 더 괜찮은 방법은 없을까? IMDb를 대상으로 하는 (실제 사례)를 소개하기로 한다. 대략 내용은 IMDb 웹 사이트 접근법 및 데이터 수집 방법을 제시한다. 아울러 수집된 포스터 데이터를 대상으로 안면인식 알고리듬을 적용하여 배우 수를 추적하고 배우 수를 파라메터로 하여 영화 등급 설정과의..

자연어처리 2022.07.03

Sentiment 분석에서 문서의 토큰화(Processing documents into tokens)

영화리뷰 데이타 세트가 준비되었으면 준비된 텍스트의 집합체를 어떻게 개별 단위의 토큰으로 쪼갤 것인지 하는 문제를 생각해 보자. 문서를 토큰화 하는 방법은 앞장에서 처리했던 클리닝한 문서 데이타(cleaned documents)를 대상으로 여백을 중심으로 단어를 쪼개는 것이다. 그러한 목적을 달성하기 위한 함수도 작성해야 하지만 아울러 아나콘다 TensorFlow 가상환경에 PyPrind에서 처럼 귀찮지만 라이브러리를 설치해야 한다는 점이다. 이미 경험이 있으면 아래 내용을 일독 후 10분 이내에 처리할 정도의 코딩 실력을 갖추도록 하자. 토큰화 관점에서 또 다른 유용한 기법으로서 word stemming 알고리듬이 있는데 이는 단어의 변환 과정애서 어근(root)을 찾아 내는 것이다. 원조 어근 알고리..

자연어처리 2022.07.01

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