텀프로젝트 - 자료구조 알고리즘 (검색기) 본문

프로젝트/프로젝트

텀프로젝트 - 자료구조 알고리즘 (검색기)

뚜스머리 2017. 6. 15. 22:39

자료구조 알고리즘 텀 프로젝트

검색기의 간단한 기능을 구현



                                       

20170615221701-실행파일.zip


과제는 다음과 같다.


word_set.txt에는 5천여개의 keyword가 존재한다.

이 키워드를 1000개 가까이 랜덤하게 조합하여 문장을 만들었고,

이 문장이 총 1000개 가까이 있다.


사용자가 keyword를 입력하는 경우, 해당 키워드를 통해 자신만의 Score 함수를 만들어

이상적인 행을 찾고, 내용을 출력한다.


문자열로 들어오는 값을 HashFunction을 이용해 Hash key로 변환하고, Hash table을 생성한다.

그리고 나서 , document의 모든 아이템에 접근하면서 Hash table을 update를 진행하며 인덱싱을 완료한다.

사용자가 문자열을 여러개 입력하면, 입력된 문자열을 hash key로 변경하여 hash table을 참조한다.


테이블을 참조하면, 각 키워드별로 어떤 행에 키워드가 있는지 벡터 형식으로 나오게 된다.

입력된 키워드에 따른 벡터들을 모두 가져오고, 이를 sorting 한다.


마지막으로, sorting 된 테이블에서 Score를 매기기 시작하는데,

나는 간단하게, 한번 이상 나오면 점수를 1씩 올리는 방식을 사용했다.


그래서 가장 높은 점수를 보여주는 값을 선택하면 그것이 결국 검색기의 검색결과가 된다.

소스파일은 Github <https://github.com/DooHaKim/Term/blob/master/main.cpp >