University of Southern California의 CSCI572 과정에서 수행한 과제가 포함되어 있습니다.
언어 : 파이썬 3.7
I/P: 검색어 집합 및 해당 상위 10개 Google 검색결과
O/P : Google과 Bing 결과를 비교하는 각 쿼리의 Spearman 계수
언어 : 자바 11
라이브러리 : 크롤러4j
I/P : 크롤링할 웹사이트 도메인 이름
O/P : 통계와 함께 가져온 URL 목록
언어 : 자바 11
라이브러리: 아파치 하둡
시스템 : Google Cloud, Microsoft Azure I/P : 인덱싱할 URL 목록
O/P : URL용 유니그램 및 바이그램용 인덱스 파일
언어 : Java 11, Python 3.7, HTML, CSS, PHP, JavaScript, JQuery
라이브러리: Apache Lucene, Apache Solr, Apache Tika, NetworkX, jsoup, PeterNorvig의 SpellCorrector
기능:
1. 페이지 순위 계산:
Java에서 jsoup를 사용하여 크롤링된 웹 페이지의 모든 링크를 구문 분석하여 EdgeList 파일을 생성했습니다.
Python의 NetworkX를 활용하여 EdgeList에서 방향성 그래프를 생성하고 모든 URL에 대한 페이지 순위 값을 계산했습니다.
2. Lucene 및 Solr 설정:
HTML 파일을 크롤링하고 반전된 색인을 효율적으로 생성하기 위한 Solr 코어를 만들었습니다.
Solr의 Select Command는 주어진 쿼리에 대한 웹 페이지를 검색합니다. 내부적으로 Lucene의 벡터 공간과 부울 모델 표현을 사용하고 TF-IDF로 결과를 정렬합니다.
이전에 계산된 페이지 순위 값으로 웹페이지 결과를 정렬하는 추가 기능을 제공합니다.
3. Iditom 검색 엔진 웹페이지 :
사용자로부터 쿼리를 받기 위한 클라이언트 역할을 하는 PHP 코드를 개발했습니다. 사용자는 가져온 결과를 정렬하기 위해 Lucene의 기본 순위 알고리즘 또는 페이지 순위 알고리즘을 사용하도록 선택할 수 있습니다. 클라이언트 API를 Solr에 사용하면 쿼리에 대한 웹페이지 결과가 검색됩니다.
Google과 같은 웹 인터페이스가 제공됩니다.
4. 맞춤법 검사 및 자동 완성:
Apache Tika를 사용하여 크롤링된 웹페이지에서 단어를 구문 분석하고 전처리한 후 어휘 텍스트 파일을 생성했습니다.
Peter-Norvig의 SpellCorrector 알고리즘을 활용하고 이 어휘를 제공하여 Edit Distance 1과 2의 확률을 계산했습니다.
Google을 모방하여 Iditom 검색 엔진에 맞춤법 검사 기능을 추가했습니다(__에 대한 결과 표시, __에 대한 대신 검색).
단어 제안에 대해 Fuzzy Factory 조회를 사용하는 Solr의 기본 자동 완성 결과를 사용했습니다.
여기에서 검색 엔진 비디오를 시청하세요 - https://youtu.be/lYZ_SdsIX3A