전체 702

코랩을 이용하여 doc2vec 모델 학습하기

0. 서론 gensim 라이브러리를 이용하여 doc2vec모델을 만들어보았다. 위키피디아 데이터를 이용하여 doc2vec모델을 학습시켰다. 처음으로 시도한 방법은 로컬에서 클래스를 만들고, 한줄씩 yield하면서 모델을 학습시키는 것이였다. (소스코드1) 1. 소스코드1 (한번에 학습하는 방법.) class Doc2VecSentences: def __init__(self,path): self.path=path self.keyDict={} def clean_str(self,text): pattern = '([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+)' # E-mail제거 text = re.sub(pattern=pattern, repl='', string=text) ..

naver faceRecognition 사용하기

0. 서론 naver의 face recognition api를 사용해본다. 사진을 입력받으면 얼굴의 개수, 눈코입의 위치, 추정되는 나이 성별 감정 등의 정보를 분석해서 반환한다. 1. application 등록 sosoeasy.tistory.com/329 여기서 1.application이랑 똑같이하면된다. 종류만 face recognition으로.. 2. 코드 (1) id와 secret, 파일경로를 입력한다. import os import sys import requests # id, secret 입력 client_id = "본인의 id값 입력" client_secret = "본인의 secret값 입력" # 파일경로 설정 files = {'image': open('파일경로 입력', 'rb')} (2) ..

naver pose estimation api 사용하기

0. 서론네이버 pose estimation api를 이용하여 사진속 사람의 신체 각부위의 위치를 찾는다. 1. application 등록(1) 로그인후 우측위에있는 콘솔창으로 간다 (2) 왼쪽에 products&services로 가서 posesti mation이 있는 AI NAVER API를 누른다 (3) 그러면 왼쪽에 ai.naver.api가 생기고 그밑에 appication탭으로 들어간다. 들어가서 파란색바탕의 applicaiton등록 버튼을 누르고 application을 등록하면 pose estimation박스가 만들어진다.그리고 박스안에 인증정보를 누르면 client key와 client_secret을 확인할 수 있다. 2. 코드(1) 1에서 발급받은 id와 secret을 입력하고, 파일경로를 ..

konlpy 라이브러리를 이용한 형태소 분석

0. 서론 konlpy라는 라이브러리가 있다. 한국어 형태소분석을 할 수 있는 여러개의 클래스가 모여있는 라이브러리이다. 공식 사이트는 여기 konlpy-ko.readthedocs.io/ko/v0.4.3/ 라이브러리를 임포트해서 사용해보도록 한다. 1. 라이브러리 import #konlpy에 있는 클래스 모두 import from konlpy.tag import * import re import pandas as pd import requests from bs4 import BeautifulSoup 5개의 클래스가 있고, 출처는 아래와 같다. Hannanum: 한나눔. KAIST Semantic Web Research Center 개발. http://semanticweb.kaist.ac.kr/hannan..

gensim 라이브러리를 이용하여 Doc2vec모델 학습하기 - 2. class iter활용

1. train함수 이용하기 : sosoeasy.tistory.com/326 2. class를 만들고, iter함수를 이용하여 객체를 만드는식으로 학습하기 class의 iter함수를 이용하여 doc2vecr객체를 생성함과 동시에 모델을 학습시키는 방법. 아래와 같은 내용이 들어있는 txt파일을 저장하고 읽어오는 식으로 진행된다. 1. 라이브러리 다운 from gensim.models import Doc2Vec from gensim.models.doc2vec import TaggedDocument from konlpy.tag import Okt 2. 클래스 생성 파일에서 한줄씩 문장을 읽으면서 형태소분해하고, tagged list type으로 변환하여 yield하는식으로 진행된다. class Doc2Vec..

gensim 라이브러리를 이용하여 Doc2vec모델 학습하기 - 1.train function 이용

1. train함수 이용하기 2. class를 만들고, iter함수를 이용하여 객체를 만드는식으로 학습하기 : sosoeasy.tistory.com/327 1. 라이브러리 다운 okt: 한국어 형태소 분석을 위한 라이브러리 from gensim.models.doc2vec import Doc2Vec, TaggedDocument from konlpy.tag import Okt 2. 데이터 전처리 taggedDocument 타입으로 만들어야 학습이 가능하다. 이때 형태소 단위로 문장을 분해해야 의미적으로 학습하기 좋다. #데이터 전처리 okt=Okt() #형태소 분해 객체 생성 data = ["나는 학교에 간다", "나는 친구를 만난다", "나는 영화보러 간다", "영화가 재밌다", "나는 공부를 하러 왔다"..

gensim라이브러리로 학습한 doc2vec모델의 함수들

1. 모델 불러오기 불러온 모델은 문서별로 번호가 태그되여 있습니다. from gensim.models import Doc2Vec #모델 저장 doc2vec_model=Doc2Vec.load('model/doc2vec_morph.model') 2. 학습한 문서중 비슷한 문서 찾기 # a(태그번호 or 벡터화된 문서)문서와 비슷한 문서를 b개 리턴한다. a="276" b=5 for i in doc2vec_model.docvecs.most_similar(a,topn=b): print(i) ('76889', 0.8220891952514648) ('148', 0.816669762134552) ('52004', 0.8151654005050659) ('155489', 0.8135135769844055) ('4188..

구글드라이브에 있는 파일 코랩으로 불러오기

구글 드라이브에 파일을 저장해놓고, 코랩에서 코드를 통해 파일을 읽어올 수 있다.내 구글 드라이브에 접근하기 위해 코랩에서 구글 드라이브 라이브러리를 다운받아야 한다. (1) 아래의 코드를 코랩에서 실행시킨다.from google.colab import drive drive.mount('/gdrive', force_remount=True) (2) 구글드라이브를 연동할 계정 인증하기(1)을 실행시키면 빈칸과 링크가 뜨고 그 빈칸에 인증코드를 입력하라는 안내문이나온다. 링크를 타고들어가서 코랩과 연동 할 구글계정으로 로그인 하면 인증코드가 나온다그 코드를 복사해서 빈칸에 붙여넣기하면 아래와 같이 마운트된다. (3) 드라이브의 경로드라이브의 경로는 '/gdrive/My Drive/' 부터 시작이다.여기서 da..

구글 코랩 시작하기 (셋팅, 파일만들기)

1. 들여쓰기 설정, 다크모드 설정 처음에 기본설정으로 테마는 화이트에 들여쓰기는 2로되어있는데, 들여쓰기는 4로하는게 편하고, 고수들은 모두 ide를 검은색으로 해놓고 쓰기 때문에 우리도 검은색으로 바꾸도록 한다. (1) 오른쪽 위에 설정버튼을 누른다 (2) 편집기 탭으로 들어가서 색상은 default dark로 바꿔주고, 들여쓰기는 4로 해준다. 2. 파일만들기 (1) 파일-새노트를 누르면 새 파일이 열린다. (2) 새 파일을 만들면 구글 드라이브에 colab Notebooks라는 파일이 생기고 거기에 저장이 된다. 형식은 ipynb.

pickle라이브러리를 이용하여 객체를 파일로 저장하기

1. 라이브러리 로드 import pickle 2. 피클형식으로 데이터 저장하기 user={'dong':29,'sung':19} #데이터 저장하기 # =>user.pickle라는 파일로 저장이 된다 with open('user.pickle','wb') as fw: pickle.dump(user, fw) 3. 피클형식의 데이터 파일 불러오기 # load data # =>user_loaded라는 변수에 저장이 된다 with open('user.pickle', 'rb') as fr: user_loaded = pickle.load(fr)

단어를 표현하는 방법. 원핫벡터와 워드임베딩

단어를 분석하기 위해선 문자를 정형데이터로 바꿔야 한다. 이때 사용하는 기법이 원핫벡터와 워드임베딩 1. 원핫벡터 문서에 나오는 모든 단어들(코퍼스)의 개수만큼 차원을 가지고, 해당단어만 1, 나머지는 0을 갖는 행렬로 표현 ex) 나는 강아지를 좋아한다. 나는 강아지를 좋아한다 나는 1 0 0 강아지를 0 1 0 좋아한다 0 0 1 나는 => [1,0,0] 강아지를 => [0,1,0] 좋아한다 => [0,0,1] * 하지만 문서의 양이 커지고, 단어의 수가 많아지면 차원이 너무 커지는 문제점이있다. 따라서 워드 임베딩을 통해표현한다 희소표현(원핫벡터) -> 분산표현(워드임베딩) 2. 워드임베딩 (1) 인풋단어 원핫인코딩 (2) 임베딩(첫번째 가중치 곱하기) (3) 인베딩한단어(벡터)들의 평균구하기 (4..

문자열 함수 (숫자,공백,문자 확인하기)

sen=input("문자열을 입력하시오: ") d={'digit':0, 'space':0, 'alpha':0} for i in sen: if i.isalpha(): #모두 문자이면 true d['alpha']+=1 elif i.isdigit(): #모두 숫자이면 true d['digit']+=1 else: #공백이면 true d['space']+=1 print(d) i가 문자열타입일때 i.isalpha() => i가 모두 문자이면 true i.isdigit() => i가 모두 숫자이면 true i.isspace() => i가 모두 공백이면 true