파이썬

    [python] 코사인 유사도를 이용한 추천시스템 - 기초

    코사인 유사도는 벡터의 '방향'이라는 특징으로만 벡터간 유사도를 구할 수 있습니다. 유클리드 거리는 방향은 무시한 채, 거리가 얼마나 가까운지에 기반하여 추천 시스템의 엔진이 되었죠. 두 추천 알고리즘 모두 완벽하거나 현재 이상적으로 활발하게 사용되는 추천 시스템은 아닙니다. 하지만 다른 고급(?) 알고리즘의 기초가 되는 만큼 간단하게 이해하고 넘어가는 것이 좋다고 생각합니다. 또한 NLP를 처음 공부한다면, Bag of Words에 기반한 단어 표현 방법인 Document Term Matrix, TF-IDF 등과 같이 단어를 수치화할 수 있는 방법을 알고 있다면, 코사인 유사도는 위 표현식에 아주 적용하기 쉬운 알고리즘입니다. 이를 기반으로 "문서의 유사도"를 구하는 게 가능합니다. 코사인 유사도는 기..

    [python] 함수 활용 시 매개변수가 뮤터블 vs 이뮤터블 일때..

    파이썬에서는 매개변수에 실제 인수가 대입된다. 복사가 아니라는 점을 명심해야한다. 파이썬에서 인수 전달은 실제 인수인 객체에 대한 참조를 값으로 전달하여 매개변수에 대입되는 방식이다. 다른 프로그래밍 언어에서는 실제 인수의 값을 매개변수에 복사하는 값에 의한 호출(call by value)를 사용하거나, 실제 인수의 참조를 매개변수에 복사하여 매개변수가 실제 인수와 같아지는 참조에 의한 호출 (call by reference)를 사용한다. 하지만 python은 객체 참조에 의한 전달(call by object reference)를 활용하는데, 위 2가지 호출의 중간 방식으로 인지하면 된다. 따라서 함수 생성 시, 1. 인수가 immutable 일 때: 함수 안에서 매개변수의 값을 변경하면 다른 객체를 생..