0801
와 8월 진짜 거짓말 같다
python
python에서만 통용되는건 아니지만 python을 기준으로 다시 한 번 정리...
oop에서 state란?
- 클래스나 인스턴스가 기억하고 있는 값들.
- instance state: 특정 instance가 가진 속성
- class state: 클래스 전체에서 공유되는 값
- instance란 무엇인가? method를 통해 만들어진 객체
method
instance method
- 언제 쓰이는가? 해당 인스턴스의 상태를 읽거나 바꿀 때
- 인스턴스를 만드려면 메서드의 첫번째 인자를 self로 선언해야됨.
class method
- 언제 쓰이는가? 클래스 전체 상태를 참고하거나, factory를 만들 때, 서브 클래싱을 고려할 때
- 첫번째 인자를 clas로 받아서 클래스 자체에 접근.
static method
- 클래스와 인스턴스의 state를 전혀 안 쓰는데 논리적으로 해당 클래스에 묶어는 두고 싶을 때
- 인스턴스도, 클래스도 첫번째 인자로 받지 않음.
퀴즈
- 사용자 이메일 형식을 검증하는 함수를 user 클래스 안에 넣을 때는 어떤 종류의 메서드를 사용해야 될까?
- 검증만 하는거면 상태가 필요없으니 static method
- 특정 사용자의 이메일을 출력하는 함수는 어떤 메서드로 만들어야할까?
- 특정 사용자의 값을 읽어야 하니까 instance method
- 모든 사용자의 수를 세는 기능은?
- 클래스 전체 상태가 필요하니까 class method
참고
- js에서의 메서드
- 인스턴스 메서드: 클래스 안에 그냥 정의
- this로 인스턴스 상태에 접근할 수 있음
- 정적 메서드: static 키워드로 정의
- 클래스 메서드는 따로 없음. 파이썬에만 있음.
- 인스턴스 메서드: 클래스 안에 그냥 정의
- oop(객체지향)에서의 클래스 상태와 React에서의 상태
- 둘 다 value를 저장한다는 점에선 일맥상통하지만
- react는 ui 렌더링과 연결 된 상태라서 함수형 상태 관리고
- oop에서의 클래스 상태는 데이터와 동작을 묶는.. ui와는 관련이 없음. 데이터만 바뀌는거임
- 참고 자료
번외...
요번에 새로 나온 gpt의 공부하기 기능을 써서 퀴즈를 내달라고 해봤다. 괜찮은듯?
근데 굳이 공부하기 기능을 켜고 써야 될까란 생각이 들기도 했다.
그냥 일반에서 퀴즈 내달라고 해도 저렇게 내던데.. 켰을 때 껐을 때 뭔 차이지?
cosine similarity VS edit distance
cosine similarity
- 벡터 간의 유사성을 측정하는데 사용
- inner product space에서 두 벡터가 이루는 각도의 코사인 값을 측정하여 유사도를 판단
- bag-of-words(단어주머니) 모델을 기반으로 하기 때문에 unordered set으로 간주하여 유사도를 판별함.
- 예를 들어 "I like apples"와 "apples i like"는 순서가 달라도 구성된 단어의 요소가 같기에 코사인 유사도가 매우 높게 나옴.
edit distance (Levenshtein distance)
- 문자열 또는 시퀀스 간의 차이를 측정하는 데 사용
- 한 문자열을 다른 문자열로 바꾸는데 필요한 최소한의 편집 횟수(삽입, 삭제, 교체)를 계산. 해당 횟수가 적을 수록 유사성이 높다고 판단.
그래서 언제 쓰는데
- 코사인 유사도는 임베딩에 주로 사용
- 임베딩이 뭔데 -> 문서, 문장, 단어 등을 고차원 벡터로 변환하는 기술. 단어의 의미나 문맥적 지식을 벡터 공간에 반영하려는 것
- 왜 벡터 공간에 반영해야되는데 -> 그래야 컴이 이해하니까..
- 임베딩이 뭔데 -> 문서, 문장, 단어 등을 고차원 벡터로 변환하는 기술. 단어의 의미나 문맥적 지식을 벡터 공간에 반영하려는 것
- 편집 거리는 의미론적 지식 없이 단순히 문자열의 유사성을 측정할 때 사용
- 결론
- 편집 거리는 순서를 고려한 문자열 간의 유사성
- 코사인 유사도는 순서가 없는 벡터간의 유사성
참고
- 편집거리와 코사인 유사도를 같이 쓸 수 있을까?
- ㅇㅇ 당연
- 검색 엔진에서 자동 완성과 오타를 교정해줄 때
- 자동완성: 코사인유사도
- 파이썬만 검색했는데 파이썬 창시자, 파이썬 뭐..... 겁나 많이 뜰거아님 물론 알고리즘도 한몫하겠지만
- 오타교정: 편집거리
- 내가 만약 파이썭 으로 오타를 냇으면 편집거리에서 얘가 아 파이썬 치려고했나? 생각하면서 파이썬으로 교정
- 자동완성: 코사인유사도
- 참고 자료