java로 검색엔진 구현하기 ( 컴퓨터 알고리즘 수업 프로젝트 )
*예*
다운로드
장바구니
소개글
java로 만든 검색엔진입니다.- 기본적으로 검색 결과의 제목과 본문이 나온다.
- 추가적으로 검색의 정확성을 수치화시킨 가중치 값이 함께 출력된다.
- 제목에 검색 키워드가 존재하는 경우가 제목에 검색 키워드가 존재하지 않는 경우보다 무조건 우선순위가 높아 먼저 출력되게 되고 그 안에서 가중치를 가지고 재배열하게 된다. 가중치는 전체 본문의 크기 중에서 키워드의 빈도수 비로 한다.
* java로 검색엔진 구현하기 ( 컴퓨터 알고리즘 수업 프로젝트 ) _ report 로 검색하시면
자세한 설명이 들어있는 프로젝트 보고서가 있습니다.
컴파일 실행환경
java 이클립스 및 넷빈즈본문내용
java로 만든 검색엔진입니다.- 모든 파일은 단어 시작 문자별로, 길이별로 해쉬로 저장되어 있다.
- 사용자가 "SEARCH"를 찾으면 해당 단어를 포함하는 모든 단어를 찾아 그 파일이 search라는 단어를 얼마나 많이 포함하는지 가중치를 계산한다. 또한 "searchalgorithm"라는 토큰이 존재하는 경우도 "SEARCH"라는 단어를 내포하므로 이런 단어도 가중치에 포함된다.
- 사용자가 입력한 키워드가 가장 근접하다고 생각하는 파일을 선택하는 방법은
1. 제목에 키워드가 존재하고 본문에 해당 키워드가 많이 나오는 파일순으로 출력
2. 제목에 키워드가 존재하지 않고 본문에 해당 키워드가 많이 나오는 파일순으로 출력
1. 사용자가 검색 키워드를 입력
2. 파일 제목 토큰 리스트에서 검색 키워드를 가진 파일들의 주소 리스트를 얻는다. 이 주소 리스트에 있는 파일들은 파일 제목에 검색 키워드를 가진 파일들이다.
3. 이 리스트에 있는 파일들의 본문 토큰 리스트로 이동한다.
4. 이 각 파일들의 본문 토큰 리스트에서 검색 키워드를 찾는 과정이 시작된다.
5. 검색 키워드와 동일한 알파벳으로 시작하고 길이가 검색 키워드와 동일하거나 긴 본문 토큰이 저장된 리스트로 이동한다.
6. 이 본문 리스트에서 검색 키워드와 일치하거나 혹은 검색 키워드가 포함되는 노드들을 모두 찾는다.
7. 먼저 이 노드의 count는 현재 본문에서 이 노드의 token 빈도수를 저장하고 있기 때문에 count*(검색 키워드의 길이)를 하게 되면 일단 본문 가중치의 일부가 계산된다. (본문 노드의 token들은 검색 키워드와 일치하거나 혹은 검색 키워드를 포함하는 경우를 의미 있다고 판단하여 검색을 성공했다고 판단한다.)
8. 파일의 제목에 검색 키워드가 들어있는 본문들의 가중치를 비교해서 정렬하고 상위 5개의 파일들을 사용자에게 보여준다.
* 구입하신 후 문의에 메일주소와 함께 글을 올리시면 보고서 파일도 보내드립니다.
보고서 파일에는 프로그램의 13장 분량의 자세한 설명과 20장 분량의 각 소스코드 함수의 기능과 설명이 적혀있습니다.
압축파일 내 파일목록
.classpath
.project
baby.txt
bin/.classpath
bin/.project
bin/Document.class
bin/docu_node.class
bin/File.class
bin/Frame$back.class
bin/Frame$front.class
bin/Frame$search_button.class
bin/Frame.class
bin/info_node.class
bin/InOutPut.class
bin/MainClass.class
bin/node.class
bin/Print_key.class
bin/String_match.class
bin/s_complete.class
bin/token_file.class
CLose to me.txt
closes.txt
CLoss with me.txt
Hello man.txt
I Did It For Love.txt
I love Rock n Roll.txt
Jesus loves me.txt
Lover.txt
My Heart Will Go On.txt
src/.classpath
src/.project
src/Document.class
src/Document.java
src/docu_node.class
src/docu_node.java
src/File.class
src/File.java
src/Frame$back.class
src/Frame$front.class
src/Frame$search_button.class
src/Frame.class
src/Frame.java
src/info_node.class
src/info_node.java
src/InOutPut.class
src/InOutPut.java
src/MainClass.class
src/MainClass.java
src/node.class
src/node.java
src/Print_key.class
src/Print_key.java
src/String_match.class
src/String_match.java
src/s_complete.class
src/s_complete.java
src/token_file.class
src/token_file.java
to close.txt
We're From America.txt
Where Is The Love.txt
.project
baby.txt
bin/.classpath
bin/.project
bin/Document.class
bin/docu_node.class
bin/File.class
bin/Frame$back.class
bin/Frame$front.class
bin/Frame$search_button.class
bin/Frame.class
bin/info_node.class
bin/InOutPut.class
bin/MainClass.class
bin/node.class
bin/Print_key.class
bin/String_match.class
bin/s_complete.class
bin/token_file.class
CLose to me.txt
closes.txt
CLoss with me.txt
Hello man.txt
I Did It For Love.txt
I love Rock n Roll.txt
Jesus loves me.txt
Lover.txt
My Heart Will Go On.txt
src/.classpath
src/.project
src/Document.class
src/Document.java
src/docu_node.class
src/docu_node.java
src/File.class
src/File.java
src/Frame$back.class
src/Frame$front.class
src/Frame$search_button.class
src/Frame.class
src/Frame.java
src/info_node.class
src/info_node.java
src/InOutPut.class
src/InOutPut.java
src/MainClass.class
src/MainClass.java
src/node.class
src/node.java
src/Print_key.class
src/Print_key.java
src/String_match.class
src/String_match.java
src/s_complete.class
src/s_complete.java
src/token_file.class
src/token_file.java
to close.txt
We're From America.txt
Where Is The Love.txt