유전자 랭커는 유전자 알고리즘의 힘을 사용하는 프레임 워크입니다.
필드에 대한 최적의 검색 가중치를 찾는 것은 오래 지속되고 배고픈 프로세스입니다. 실제 구성이 얼마나 좋은지 확인하기 위해 수십 개의 문서, 수십 개의 필드와 수백 개의 쿼리를 테스트 해야하는 수백 개의 쿼리를 가진 색인을 상상해보십시오. 귀하의 임무는 특정 분야가 얼마나 중요한지 결정하는 것입니다. 평생이 걸릴 수 있습니다.
이 과정에 대한 자세한 정보가 필요하면 내 블로그에 그것에 대한 게시물을 썼습니다.
첫째, 처리 중에 변경 될 수있는 숫자 가중치 세트로 문제를 쉽게 정의 할 수 있습니다. 알고리즘의 돌연변이, 크로스 오버 및 재생 부분은 숫자로 쉽게 수행 할 수 있습니다.
둘째, 유전자 알고리즘은 문제에 대한 실제 이해 없이도 유망한 솔루션을 보존 할 수 있습니다. 더 나은 종 (개인)은 보관되어 더 나은 사람들을위한 조상이 될 것입니다.
셋째, 돌연변이 및 크로스 오버 부품으로 인해 알고리즘은 프로세스에 약간의 무작위 성을 추가합니다 . 실제가 좋더라도 최상의 답변을 찾는 데 도움이 될 수 있습니다.
다시, 여기에 더 자세히 설명하십시오.
GeneticRanker를 시작하려면 Ranker.py 파일을 실행해야합니다. 프로젝트에는 간단한 사용 사례를 입증하는 데 필요한 모든 데이터가 포함되어 있습니다.
Ranker.py에서 사용하려는 필드 수를 정의해야합니다 ( Ranker 의 Gene_Size ). 그런 다음 평가자 클래스 ( 필드 )에 해당 필드를 지정하십시오.
queries.csv에서 테스트하려는 사용 사례를 지정해야합니다. 형식은 다음과 같습니다.
[query], [document_id] : [expost_Position] : [good_enough_position]
Properties.ini 에서 사용하려는 검색 엔진을 정의 할 수 있습니다 : Elasticsearch 또는 Solr. 쿼리는 각각 essearcher.py 및 solsearcher.py 에서 정의되어야합니다.
쿼리가 실행되는 필드에 대한 최적의 가중치를 찾아야하는 검색 엔지니어라고 상상해보십시오. 귀하가 가진 유일한 것은 쿼리 및 인덱스의 문서를 포함하는 File Queries.csv 입니다. GeneticRanker를 실행하기 전에이 CSV 파일을 읽고 Queries-es.txt 에서 문서를 분석하는 데 시간이 걸립니다.
8 개의 문서와 10 개의 쿼리 만 있지만이 작업에 잠시 시간을 할 수 있다고 보장합니다.
데이터 디렉토리에는 문서가 포함 된 파일이 있습니다. Elasticsearch 및 Solr 방법을 사용하여 인덱스를 사용할 수 있지만 전자의 경우 Postman 도구와 나중에 Solr 관리자 패널을 사용했습니다.
서버를 올리거나 실행하면 스크립트를 실행하고 결과를 볼 수 있어야합니다.
일 Elasticsearch pysolr
라이센스를 확인하고 소프트웨어에서 라이센스를 사용하는지 결정해야합니다. 유전자 알고리즘은 DEAP 프레임 워크를 사용하여 구현됩니다.
모든 유스 케이스는 유전자 알고리즘 값 또는 알고리즘 자체의 변경이 필요할 수 있지만 제안 된 구성은 좋은 출발점이어야합니다. 행복 사용!