본문 바로가기

전체239

KMP 알고리즘 [펌-요약] 먼저 알아야 하는 것 KMP 알고리즘을 이해하기 위해 먼저 알아야 하는 것이 2가지가 있습니다. 첫번째는 접두사(prefix)와 접미사(suffix)입니다.직관적으로 "banana"의 접미사와 접두사를 보면 무엇인지 이해될 것 입니다. bbabanbanabananbanana 이 6개가 banana의 접두사(prefix) 입니다. anaanananaananabanana 이 6개가 banana의 접미사(suffix) 입니다. 두번째로 pi배열 입니다.pi[i]는 주어진 문자열의 0~i 까지의 부분 문자열 중에서 prefix == suffix가 될 수 있는 부분 문자열 중에서 가장 긴 것의 길이(이때 prefix가 0~i 까지의 부분 문자열과 같으면 안된다.) 무슨 말인지 모르겠죠? 예시를 보면 직관적으로 이.. 2017. 1. 13.
f1 score 출처 : http://hanggoo.tistory.com/m/post/17 자연어처리를 공부하다보면 논문에 Precision, Recall등으로 실험결과를 표현하는것이 많다.자주쓰이지만 해깔려서 적어본다. 실험 결과 TrueFalse 실제 정답 True a b False c d Precision(정확률) = a / (a + c)- 컴퓨터가 True라 한것 중에 실제 True의 비율- 검색된 것중 몇개 맞추었는지 Recall(재현률) = a / (a + b)- 실제 True중 컴퓨터가 True라 한것의 비율- 실제 정답중 몇개 맞추었는지 Accuracy(정확도) = (a + d) / (a + b + c + d)- 전체 결과중 실제 정답과 같은 판단이 나온 비율 F1 score = 2 * (Precision.. 2017. 1. 13.
RDBMS vs 검색엔진의 차이 평소에 궁금하던점을 재밌게 잘 표현한 글이다.글쓴분이 나름 인문학적 소양이 있는 듯하다. 정리 및 내 생각을 추가하면, RDBMS 가 MODERN, HARD, 기업적, 수직적, 딱딱함 이라는 표현이 어울린다면,검색엔진은 POST-MORDERN, SOFT, INTERNET, 수평적, 유연함 이라는 표현이 어울리는 거 같다. 쉽게 말해, 테이블로 딱딱하게 쪼개서 저장할 수 있는 데이터들은 DMBS 로 다루고,텍스트 같이 소위 비정형데이터들은 검색엔진이 다룬다. 질의방식도 검색엔진은 자연스러운 자연어 질의가 가능하다면RDBMS 는 딱딱한 쿼리로 던져야만 한다. 또, 색인과정은 '색인어 추출' 에 의해 유연하게 색인할 수 있다면,RDBMS 는 마이그레이션이라는 과정을 통해야한다. 또한 검색결과도 다양한 유사도 .. 2017. 1. 13.
고유값, 고유벡터 1) 개념 행렬의 고유벡터는 그 행렬의 방향을 나타낸다. (바람의 방향처럼) 위 그림의 파란색 벡터를 보면 방향이 변하지 않는다.바로 저런 벡터가 고유벡터 되시겠다. 위 그림의 파란색 벡터 역시 방향이 변하지 않는다. 간단히 정리하면, 위의 모나리자 그림에 행렬을 적용하면 오른쪽과 같이 변한다. 그러는 와중에 변하지 않고 자신의 방향을 지켜주는 벡터가 있다.이걸 고유벡터라고 부르고,다음에 보겠지만 이런놈들 덕에 우리는 회전변환을 쉽게 이해할 수 있게된다. 2) 설명 일단, A 는 변환행렬v 는 고유벡터람다는 고유값이다. 식을 대충 이해해본다면A 행렬은 고유벡터 v의 크기 변화로 이해해보겠다는 것이다. 예를들면,위 행렬의 고유벡터는 (1,1), (-1,1) 이다. 고유값은 3,-1 이다. 그러면 이 행렬 .. 2017. 1. 11.