#파이썬
332023.03.08
인플루언서 
887프로그래머
참여 콘텐츠 44
2
[Python] 파이썬 Flask 라우팅(엔드포인트) 메서드 설정

Flask 활용한 API 만들기 파이썬프로그래밍 © douglasamarelo, 출처 Unsplash 어제 올려드렸어야했는데 여러모로 바쁜듯 안바쁜듯 한 하루였습니다. 그래서 오늘 올리게 되었습니다. 오늘 올리는 자료는 Flask를 활용하여 엔드포인트를 지정하고 메서드 지정 및 파라미터 활용 편 입니다. 간단하면서도 어렵다면 어려운 부분입니다! Python Flask 엔드포인트 만들어보기 이전 포스팅에서 간단하게 / 엔드포인트에 접근 설계를 했었는데 방법은 완벽하게 동일합니다! 기본설계 @app.route('/test1') def test1(): ... @app.route('/test2') def test2(): ... @app.route('/test3') def test3(): ... 이렇게 만들어주면 라우팅이 완벽하게 만들어졌습니다. /test1에 접근하면 def test1()의 기능이 동작할 것 입니다. API를 만들수도 있고 그냥 웹 페이지를 열 수 있습니다. API 생성과 웹 템플릿 읽어들이기 가장 먼저 라이브러리 두 개를 연결해줘야합니다! from flask import render_template from flask import jsonify render_template는 템플릿 폴더를 접근하여 HTML 파일을 열어주는 작업을 담당합니다. jsonify는 데이터를 json화 시켜서 API 작업을 담당합니다. render_...

2023.03.08
2
[Python] 파이썬 Flask API 및 웹 서비스 만들기 설치편

Flask 설치하기 © artturijalli, 출처 Unsplash 안녕하세요. 오랜만에 파이썬 글을 올리네요!! 오늘은 간단하게 프레임워크를 활용하여 웹 서비스를 만들기 위한 시작편 입니다! Flask를 활용하여 웹 어플리케이션을 만드는 방법에 대해서 알아보려고합니다 오전에는 간단하게 설치하는 방법과 프로젝트 구조에 대해서 알아보고 오후에는 오픈 웹 탬플릿을 올려서 웹 어플리케이션을 만들어보겠습니다. 파이썬 Flask 설치하기 패키지 설치 pip install flask Python 파이프라인을 이용하여 flask를 가볍게 설치해주세요! 프로젝트 만들기 설치가 완료되었으면 간단하게 하나의 껍데기를 만들어보는 시간을 가지겠습니다. from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, Flask' 간단하게 코드를 작성하고 아래의 명령어를 통해서 실행을 시켜보겠습니다! 실행하기 export FLASK_APP=내프로젝트파일.py flask run 실제로 위의 방법도 있지만 프로젝트 자체에 __main__ 에서 app.run()을 활용할 수도 있습니다. app = Flakse(__name__) ... ... ... if __name__ == "__main__": app.run() 저는 첫 번째 방법이 편하여 사용하고 있습니다. 또한 ...

2023.03.07
11
파이썬 프로그래밍 도서 추천 나도코딩의 파이썬 입문

파이썬 남녀노소 누구나 쉽고 빠르게 배우기 안녕하세요 꾹이 입니다. 도서 서평을 받게 되어 처음으로 도서를 읽어보고 포스팅을 올려봅니다. 요새 많은 분야에서 활발하게 활용되는 언어인 Python 관련된 책인데요. 입문서로 내용이 정말 좋은 것 같았습니다. 책은 구독자 30만을 보유하고 있는 코딩 유투버 나도코딩님의 책인데요. 실습 내용으로는 텍스트형을 보여주는 게임 그리고 간단한 계산식을 이용한 계좌 실습을 다루고 있는데요. 기본 입문서에서 나름 탄탄한 내용을 다루고 있는 거 같습니다. 책을 보면서 간단하게 좋았던 부분에 대해서 같이 공유하면서 하나하나 알아가 보겠습니다 나도코딩의 파이썬 입문 책에는 독서를 하는 사람에게 의지를 더해줄 학습 플랜이 잘 다루어지고 있었습니다. 간단한 설치방법부터 그리고 클래스와 예외 처리와 같은 아주아주 중요한 부분까지 아주 잘 나눠져서 구성이 이루어졌습니다. 개인적으로 클래스 부분을 4일에 걸쳐서 괜찮게 나눠서 구성했다는 게 정말 매력적이었습니다. 저 또한 개발을 하다 보면 클래스가 많이 중요하다고 생각이 드는데 이 부분에 대해서 잘 구성한 것 같습니다. 각 장의 시작은 간단한 시작 멘트로 학습에 내용을 간단하게 알아볼 수 있습니다. 시작 전에 가벼운 이해를 통해서 해당 절을 완벽하지는 않겠지만 편하게 숙지할 수 있다고 생각이 드네요. 절의 마지막에는 항상 실습 문제를 구성하여 지루한 부분을 없애는 ...

2023.02.26
3
[Python] 파이썬 Pynecone 혁신 (파인콘)

파이썬 파인콘 하나로 React, Next Pynecone 오늘은 오랜만에 새로운 프레임워크를 소개하려고 합니다. 오늘 소개하는 프레임웍은 Python을 활용하여 만들 수 있는 Framework이며 혁신 그 자체입니다! 저도 공부는 아직 안했지만 자료를 서칭하다가 발견한 엄청난 .. 혁신이네요 (근데 솔직히 아직은 계속된 개발을 진행하고 있는 오픈소스입니다!!) Pynecone 설치해보기 GitHub - pynecone-io/pynecone: Web apps in pure Python. Web apps in pure Python. Contribute to pynecone-io/pynecone development by creating an account on GitHub. github.com 공식 깃의 내용을 발췌하면 파이썬 3.7+ 노드 12.22.0+ 라면 해당 프로젝트를 구성할 수 있다고 합니다. 설치 방법은 pip를 활용하여 설치를 해주시면됩니다. pip install pynecone-io pc init pc run 이제 간단하게 예저 소스를 들춰보겠습니다. 공식 홈페이지의 문서에서 내용을 발췌합니다! https://pynecone.io https://pynecone.io/docs/getting-started/introduction import pynecone as pc class State(pc.State): count: i...

2023.01.18
[Selenium Python] ActionChains를 활용한 표 스크롤 하기

셀레니움 파이썬 ActionChains 그리드 컨트롤 ActionChains 연결하기 액션체인을 활용하여 우리는 마우스를 컨트롤하려고 합니다. 웹 사이트를 크롤링 하다보면 스크롤을 동작시키며 api토인을하여 그리드를 그려주는 시스템이 존재합니다. 이러한 경우를 처리할때 방법중 하나입니다. 셀레니움 ActionChains 연결하기 from selenium.webdriver import ActionChains 그리드 박스 컨트롤하기 본격적인 처리 방법 이러한 박스를 컨트롤하고자 하는 경우 마우스를 움직이는 효과를 만들어주는 것 입니다. 방버으로는 자바스크립트를 활용하는 방법도 존재하지만 우리는 편하게 셀레니움이 제공하는 액션체인을 활용해보겠습니다. 체크해야할 것 표의 영역 정보 표의 스크롤 총 높이 표의 한 줄의 높이 이제 모든 준비가 완료 되었습니다! 실전 el_master = webdriver.drv.find_element(By.[종류],[표의 영역정보] el_total_height = 800 el_row_height = 20 el_for = 800/20+1 for i in range(1,el_for): ActionChains(webdriver.drv).scroll(0, 0, 0, i*el_row_height, origin=el_master).perform() 위의 코드는 정말 그냥 샘플의 느낌의 코드로 만들어 본 것입니다. 총 높이...

2022.08.29
[Python] FastAPI 형식에 대해서 알아보기

Python FastAPI 형식에 대해서 알아보기 from fastapi import FastAPI, Header, Cookie, status from fastapi.responses import FileResponse # 파일 웹 페이지 열기 from pydantic import BaseModel # 데이터 받고넘기기용 import time, random from typing import List, Optional, Union FastAPI를 활용한다면 당신은 지금 API서비스를 개발하고 있을 것 입니다. 우리는 그렇기에 상황에 고려하여 구성해주는 것이 아주 좋습니다! Requst 형식 사용방법 기본 부터 차근차근 Resquest Body형식 #Request Body 형식 class ReqeustParams(BaseModel): address :int dong :int ho :int @app.get("/SAMPLE_POST_QueryBodyJSON") def SAMPLE_POST_QueryBodyJSON(data:ReqeustParams): return 'test' Header/Cookie 받아오기 #Header/cookie 정보 @app.get("/SAMPLE_HeaderCookie") def SAMPLE_HeaderCookie(user_agent: str = Header(None), x_token: List[str] = Hea...

2022.08.26
[Selenium Python] 쿠키 저장

셀레니움을 이용하여 쿠키 저장 세션 활용을 해보자! 모든 쿠키 정보를 저장하자! 쿠키 주세요 저장해주세요! get_cookies() 변수 = [웹 드라이버].get_cookies() print(변수) delete_all_cookies() 변수 = [웹 드라이버].delete_all_cookies() 쿠키를 모두 지우는 방법도 있습니다. 우리가 원하는 쿠키를 추출하고 다른 쿠키가 필요한 경우 기존 쿠키를 모두 지우고 다음 쿠키를 저장하는 경우 등 상황에 맞게 고려하여 프로그램을 작성해주시면 됩니다. 딕셔너리화 하여 정리하기 for cookie in [쿠키를 저장한 변수]: [딕셔너리 변수][cooike['name']] = cookie['value'] 참고 문헌/자료 - #셀레니움 #selenium #cookie #쿠키

2022.08.25
[Selenium Python] user-agent와 platform을 계속 변화 시키는 방법

[Selenium Python] user-agent / platform 변화 © nejc_soklic, 출처 Unsplash 최대한 바꿔서 접근하자! 나를 알리지말라! 셀레니움으로 자동화 프로그램을 만드는 이유는 여러가지가 있겠지만 대부분 해당 사이트에 접근하는 과정에서 자신의 정보를 공개하지 않는게 주 목적이기에 agent를 숨기는게 목적중 하나이다. 오늘은 user-agent를 계속 움직이는 방법에 대해서 알아보겠습니다! execute_cdp_cmd를 활용하는 방법! 자세한 정보는 공식 문서에 나와있지만 우리가 필요한 사용법에 대해서만 알면 끝이다! 크롬드라이버에서 제공하는 정보에 대해서는 아래의 링크를 활용하여 기술을 개발해주시면 됩니다. https://chromedevtools.github.io/devtools-protocol/tot/Network/ Chrome DevTools Protocol Chrome DevTools Protocol - version tot - Network domain chromedevtools.github.io execute_cpd_cmd 사용방법 [웹 드라이버].execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": [변경하고자하는 유저 에이전트 정보], "platform": [플랫폼 종류] }) 해당 행동을 상황에 따라서 계속 변환해주며 프로그...

2022.08.25
2
[Python] fastAPI (메서드 및 uvicorn) 옵션

fastAPI method type과 uvicorn 옵션 © artturijalli, 출처 Unsplash method type 상황에 맞는 메서드 타입을 구성하자! 메서드 타입을 지정하는 이유는 Restful API작성의 기본이라고 하니깐 짚고 넘어가자 데이터를 받기 위해선 보통 POST 그렇지 않은 경우는 GET으로 그냥 작성하지만 그래도 뭐가 있는 지 짚고 넘어가자 @app.get() @app.post() @app.put() @app.delete() @app.options() @app.head() @app.patch() @app.trace() OPTIONS와 같은 경우는 브라우저 자체가 주로 발생시키는 것이니 간단하게 있다고만 생각하면 됩니다. 우리는 주로 GET POST PUT HEAD 정도를 사요할 것으로 판단됩니다. uvicorn 자주 사용하는 옵션 uvicorn main:app --reload --host=0.0.0.0 --port=8000 main : 어플리케이션의 이름 (즉, 파이썬 프로그램 이름) realod : 프로그램이 수정되면 자동으로 반영하는 것 host : 접근 대상 에 대한 정보 (즉, 특정한 서버에서만 접근을 허용하고자한다면 명시할 것) port : 말그대로 uvicorn의 활성 포트 uvloop가 작동하는 개념인 듯 하다. 상세한 내용은 공식 홈페이지를 참조하는 것이 좋을 것 같다. Uvicorn An...

2022.08.19
[Python] fastAPI (API 특화 프레임워크)

파이썬 API 특화 프레임 워크 fastAPI fastAPI 기본 설치 및 실행 명령어 fastapi 설치하기 pip install fastapi uvicorn 설치하기 pip install "uvicorn[standard]" or pip install uvicorn fastapi 실행하기 uvicorn 파이썬파일명:app --reload --reload 옵션을 활성화하면 파일 변경 시 자동으로 반영된다. fastAPI 사용방법 from fastapi.responses import FileResponse # 파일 웹 페이지 열기 from pydantic import BaseModel # 데이터 받고넘기기용 import random,time,math, pymysql app = FastAPI() @app.get("/") def 메서드명(): return 'data' @app.get("/2") def 메서드명(): time.sleep(random.randrange(10,11)) return {'hello':123} @app.get("/3") def 메서드명(): return FileResponse('파일위치/명') class 모델명_객체명(BaseModel): name :str phone :int @app.post("/send") def 메서드명(data : 모델명_객체명): print(data) return data @app.get("...

2022.08.16
[AWS + Python] 웹드라이버 설치 방법

AWS , Python 웹드라이버 설치 방법 웹 드라이버 설치 방법을 작성하게된 원인 기존에 셀레니움 동작 aws 환경을 리눅스86_64를 활용하여 셋팅하고 처리하고 있었는데 비용적인 문제로 인스턴스 교체 과정에서 arm64 즉 AMD CPU로 교체하는 과정에서 이슈가 발생하였습니다. 인텔기반 리눅스 웹 드라이버 - 크롬 설치방법 wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' sudo apt-get update sudo apt-get install google-chrome-stable sudo pip install selenium sudo pip install webdriver_manager 아래의 소스를 차근 차근 진행하면 간단하게 크롬이 설치가 되었을 것 입니다. google-chrome --version 간단하게 버전을 확인하고 원하시는 프로그램을 작성하여 테스트를 하면 끝 AMD기반 리눅스 arm64 웹 드라이버 설치방법 sudo apt install chromium-chromedriver 위와...

2022.06.28
Python 셀레니움 네트워크 XHR Log 추출

Python 셀레니움 네트워크 XHR 추출 from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.common.desired_capabilities import DesiredCapabilities from selenium.webdriver.common.desired_capabilities import DesiredCapabilities 옵션을 필수적으로 활성화 해주셔야 합니다. xhr log 활성화 하기 capabilities = DesiredCapabilities.CHROME capabilities["goog:loggingPrefs"] = {"performance": "ALL"} log 추출을 위한 사용자 정의 함수 만들기 #xhr 관련 처리 def clear_xhr(self): self.drv.get_log("performance").clear self.drv.get_log("performance") def get_xhr_filter(self, name): logs_raw = self.drv.get_log("performance") logs = [json.loads(lr["message"])["message"] for lr in logs_raw] for log in filter(self....

2022.06.10
[Python] json, xmltodict (xml->json)

[Python] json, xmltodict XML 을 JSON 전환하기 해당 모듈(라이브러리)은 XML 데이터를 딕셔너리화 후 json으로 바꾸는 방법에 사용하는 모듈이다. XML → dictionary data → Json으로 바꾸는 방법이다. xmltodict 설치하기 자신이 활용하는 ssh 툴에서 아래의 모듈(라이브러리)를 설치해주세요 pip3 install xmltodict json 설치하기 pip3 install json 사용예시) xml = * # xml 형식의 데이터 변수라 생각하자 dict = xmltodict.parse(xml) json_obj = json_loads(json.dumps(dict)) #python #xmltodict #json

2022.04.26
[Python] geopy 사용방법

[Python] geopy 사용방법 geopy 라이브러리 지오코드를 요청하고 받아오는 라이브러리 입니다. 설치하기 pip install geopy 연결하기 from geopy.geocoders import Nominatim geo_local = Nominatim(user_agent='South Korea')  예시) def geocoding(road, address): try: try: geo = geo_local.geocode(road.replace(" ","")) x_y = [geo.latitude, geo.longitude] except: geo = geo_local.geocode(address.replace(" ","")) x_y = [geo.latitude, geo.longitude] except: x_y = [0,0] return x_y 단점 해당 상세주소의 좌표데이터는 알 수 가 없다. 예) 꾹로 1 = 꾹로 2 = 꾹로 3 모두 동일한 위, 경도를 배포한다. #python #geopy

2022.04.25
5
[TensorFlow] CUDA 에러 ( cu*.dll 및 cudnn*.dll )

TensorFlow GPU 비활성화 에러 텐서플로우를 하면서 발생할 수 있는 에러를 해결하는 방법에 대해서 알려드리겠습니다. TensorFlow를 이용하여 트레이닝 작업을 시작하면 정상으로 학습을 하는데 시간이 너무 오래걸린다면 꼭 체크해주세요. 아나콘다 콘솔창에 Error 관련내용이 있는지 체크해주세요 내용에는 경고이며 .dll파일이 존재하지 않다는 내용이 있습니다. 예를들어 could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found 이러한 이슈가 있거나 비슷한 이슈들이 있다면 100% cuda 파일이 잘못되었을 것 입니다. 1. 에러발생의 원인 에러 발생에 원인은 TensorFlow버전과 CUDA 버전에서 dll이 다를 수 있습니다. CUDA의 에러보다는 실제로는 TensorFlow가 요청하는 CUDA버전이 다르다고 생각하는게 더욱 편할 것 입니다. 예를 들어 Could not load dynamic library 'cudnn64_7.dll', dlerror could not load dynamic library 'cudart64_100.dll'; dlerror: cudart64_100.dll not found 이 두 가지 에러를 기반으로 이야기한다면 cudart64_100의 경우는 cuda 버전에 대한 이슈입니다. cudnn64_7의...

2021.06.04
3
[Python] TensorFlow Slim활용한 나만의 모델 만들기

Python TensorFlow 이미지라이브러리 나만의 Slim기반 모델 만들기 처음에는 텐소플로우라는게 도대체 무엇이 머신 그리고 딥러닝에 대해서 너무 심오하였습니다. 지금도 똑같아요 엄청 심오한거같고 이해도 안되고 그래도 부랴부랴 그냥 해봅니다. 제가 하면서 각종 검색 자료를 토대로 정리하고 작업한 것을 공유하고자 이렇게 올립니다. TensorFlow를 활용한 나만의 모델 만들기 나만의 모델만들기라 표현을 하였으나 실제로는 Slim라이브러리를 활용하여 확장한 모델을 만든다고 생각하는게 좋을 것 같습니다. Slim이라는 이미지 분류 모델 자체가 있기 때문입니다. 1. 사전준비 1-1. 이미지 세트를 구한다. (제가 찾아본 자료에서는 caltech 이미지 세트를 받았습니다.) Caltech-256 Object Category Dataset - https://authors.library.caltech.edu/7694/ 만약 진짜 나만의 이미지 세트를 만들고자 한다면! 여기서 한가지 중요한 점 만약 진짜 나만의 모델을 만들기 위해서 자료를 준비한다면 자동화 이미지 수집기를 만들어서 이미지를 분류 저장합니다. 필요로 하는 이미지를 수집시스템으로 수집을 합니다. 악의적 목적보다는 좋은 목적이니 검색할때는 누구나 혀용된 이미지를 토대로 수집하여 데이터셋을 구축합니다. 그리고 그 구축된 이미지들을 기반으로 Tensorflow Slim을 이용하여...

2021.05.31
5
VSCode 파이썬 확장프로그램 및 인터프리터 설정

파이썬 확장 프로그램 인터프리터 설정 © ryanadhi, 출처 Unsplash 비쥬얼스튜디오 코드에 Python 설치 및 인터프리터 설정 방법에 대해서 알아보자! Python 설치 및 확장프로그램 확장 프로그램 도구로 접근하여 검색을 통해서 아래의 두 가지를 설치해주시면 기본 설치는 끝 만약 파이썬 설치가 되어있어서 해당 파이썬을 사용하고 싶다면 설치가 필요없음 인터프리터 설정 파이썬을 여러버전 설치하여 관리하고 있는 사람이라면 꼭 설정해줘야하는 옵션일 것이다. 특히 가상환경을 추가하여 해당 환경별 버전을 설정한다면 더더욱 필요한 설정이다. 비쥬얼스튜디오 코드에서 파레트도구를 활성화 하고 Select interpreter를 검색해주세요. 검색 후 가볍게 선택을하면 끝! 참고 문헌/자료 - #파이썬 #VSCode #인터프리터 #interpreter

2023.01.18
3
Python 자연어 처리 머신 러닝, 딥 러닝 알아보기

Python 자연어 처리 머신러닝 딥러닝 © johnschno, 출처 Unsplash 오늘은 파이썬의 머신러닝과 딥러닝을 알아보도록 하겠습니다. 머신러닝에 딥러닝이 포함되어 있으며 가볍게 표현하면 규칙을 잡아서 해당 규칙을 분석하여 어떠한 결과를 도출해서 모델을 만드는 것이라고 보시면 됩니다! 서두는 가볍게 이 정도까지만 각설하고 간단하게 검증 하는 과정에 대한 이론과 간단한 용어들에 대해서 정리해보겠습니다! 모델을 만드는 과정 © kellysikkema, 출처 Unsplash 데이터를 분류하는 작업을 가장 먼저 해야하는데 데이터는 작게는 2가지 크게는 3가지로 분류하게 됩니다. 트레이닝 데이터 검증 데이터 / 테스트 데이터로 머신러닝의 재료를 만들어 줍니다. 모델은 일단 트레이닝 데이터를 활용하여 기본적인 훈련을 진행시키고 검증 데이터를 활용하여 튜닝여부를 판단하게 됩니다. 튜닝을 하는 이유는 성능을 더 올리기 위해서 하는 행동입니다. 하지만 이렇게 모델을 만들어도 완벽한 결과를 만들 수 는 없습니다. 그래도 꼭 튜닝은 해줘야합니다 튜닝을 하게 되는 이유는 크게 회귀와 분류에 의해서 발생하는 문제를 고치기 위한 행동이라고 보시면 됩니다. 튜닝을 해야하는 이유인 문제의 종류 연속된 범위의 결과를 예측하는 결과의 문제 회귀 어떠한 문제에서 결과를 선택하는 과정의 문제 분류 나는 위의 두 가지 문제에 대해서 차차 학습할 예정이고 보통은 ...

2022.12.28
2
Python 자연어 처리 백터의 유사도 샘플 경험해보기

Python 자연어 처리 샘플 데이터 테스트 © clemhlrdt, 출처 Unsplash 05-01 코사인 유사도(Cosine Similarity) BoW에 기반한 단어 표현 방법인 DTM, TF-IDF, 또는 뒤에서 배우게 될 Word2Vec 등과 같이 단어를 수치화할 수 있는 방법을 이해했다면 이러한 표현 방법에 대해서 … wikidocs.net 해당 자료를 근거하여 캐글의 데이터셋을 이용해보자! 내용 중 하단에 캐글 영화 데이터셋 중 movie_metadat (무비메타데이터)셋을 활용하는 과정 입니다. 내용을 보면 TF-IDF 방식으로 수치도를 구현하고 코사인 유사도 분석을 하는 프로그램을 소개합니다! 데이터 셋 다운로드 The Movies Dataset Metadata on over 45,000 movies. 26 million ratings from over 270,000 users. www.kaggle.com 해당 사이트에서는 이 외에도 각종 데이터셋을 제공받을 수 있습니다. 데이터 세트도 있고 이미 공부가된 모델들도 있습니다. 강의 내용을 보면 해당 영화 데이터 셋을 사용하여 특정 영화의 유사한 영화들을 뽑아내는데 한번 테스트 해보자! 코드 이해하기 Python 자연어 처리 코드를 이해해보겠습니다. 코드 부분만 복사해서 간단하게 테스트가 가능합니다. 중요한 부분들은 다시 한번 되짚어 보자! import pandas as ...

2022.12.27
5
Python 자연어 처리 백터의 유사도 (코사인, 유클리드, 자카드)

Python 자연어 처리 백터의 유사도 (코사인, 유클리드, 자카드) © cdr6934, 출처 Unsplash 오랜만에 파이썬 자연어관련 블로그 포스팅을 합니다. 포스팅에 앞 서 모두들 크리스마스는 재미있게 보내셨는지요. 저는 아내와 재미있는 시간을 보냈습니다. 내년 소원도 같이 빌고 즐겁게 시간을 보냈어요 슝슝 벌써 12월의 마지막 주라니 말도 안돼 2022년 정말 즐거운 한 해 였는데 기분 좋은 일이 더 많은 한 해였습니다. 오늘 하루도 회사에서 새로운 다짐을 하고 있어요! 본격적으로 백터의 유사도란? 우리는 이전 포스팅에서 수치화 유사도에 대해서 배웠습니다 Bow TF-IDF Word2Vec이 대표적인 수치화 방법이 였습니다. 오늘은 수치화된 결과를 백터 유사도를 활용한 방법론에 대해서 알아보는 시간이 될 것 같습니다. 간략하게 정리하면 수치화된 결과를 토대로 문서의 유사도를 분석하는 방법입니다! 대표적은 코사인 그 외 유클리드, 자카드가 있습니다! 그럼 하나하나 체크해보겠습니다! Python 코사인 유사도 문서의 단어나 문장을 수치화 한 갚을 토대로 구하는 방법이며 Numpy - norm (놈)을 활용하여 간단하게 테스트가 가능합니다! 공식은 위와 같다고 합니다! 자연어 처리 코사인 유사도는 위와 같이 두 데이터를 비교하여 각도를 기준으로 -1 0 1이 표현됩니다. 당연히 1에 가까울 수록 유사하다는 뜻이며 서로 직각을 이루면...

2022.12.26