Genetic Ranker adalah kerangka kerja menggunakan kekuatan algoritma genetika untuk menemukan bobot pencarian optimal untuk pertanyaan Elasticsearch atau SOLR.
Menemukan bobot pencarian yang optimal untuk bidang adalah proses yang tahan lama dan tidak berterima kasih. Bayangkan indeks dengan jutaan dokumen, setiap dengan puluhan bidang, dan ratusan pertanyaan yang harus diuji untuk memastikan seberapa baik konfigurasi aktual. Tugas Anda adalah menentukan seberapa penting bidang tertentu. Ini bisa memakan waktu seumur hidup.
Saya menulis posting tentang hal itu di blog saya, lihatlah jika Anda memerlukan informasi lebih lanjut tentang proses ini.
Pertama, mudah untuk mendefinisikan masalah sebagai set bobot numerik yang dapat diubah selama pemrosesan. Bagian mutasi, crossover & reproduksi dari algoritma dapat dengan mudah dilakukan pada angka.
Kedua, algoritma genetika mampu mempertahankan solusi yang menjanjikan , bahkan tanpa pemahaman yang sebenarnya tentang suatu masalah. Spesies (individu) yang lebih baik akan disimpan dan menjadi leluhur untuk yang lebih baik.
Ketiga, karena bagian mutasi & crossover, algoritma menambahkan sedikit keacakan pada proses . Mungkin membantu menemukan jawaban terbaik bahkan jika sebenarnya bagus.
Lebih lanjut tentang itu, sekali lagi, di sini.
Untuk memulai GeneticRanker, Anda perlu menjalankan file ranker.py. Proyek berisi semua data yang diperlukan untuk menunjukkan kasus penggunaan sederhana.
Di ranker.py Anda harus menentukan berapa banyak bidang yang ingin Anda gunakan ( Gene_Size di Ranker ). Kemudian tentukan bidang -bidang tersebut di kelas evaluator ( bidang ).
Dalam kueri.csv Anda perlu menentukan kasus penggunaan yang ingin Anda uji. Formatnya adalah:
[kueri], [document_id]: [diharapkan_position]: [good_enough_position]
Di properties.ini Anda dapat menentukan mesin pencari mana yang ingin Anda gunakan: Elasticsearch atau Solr. Kueri harus didefinisikan dalam Essearcher.py dan Solrsearcher.py masing -masing.
Bayangkan Anda adalah seorang insinyur pencari yang harus menemukan bobot optimal untuk bidang di mana pertanyaan dijalankan. Satu -satunya hal yang Anda miliki adalah file kueri.csv , berisi kueri, dan dokumen dalam indeks. Sebelum menjalankan GeneticRanker, butuh waktu untuk membaca file CSV ini dan menganalisis dokumen dari kueri-es.txt .
Hanya ada 8 dokumen dan 10 pertanyaan tetapi saya menjamin bahwa Anda dapat menghabiskan waktu untuk tugas ini.
Di direktori data ada file yang berisi dokumen. Anda dapat menggunakan cara Elasticsearch dan Solr apa pun untuk mengindeksnya, tetapi untuk yang sebelumnya saya gunakan alat pos dan untuk panel admin solr nanti.
Memiliki server dan berjalan harus cukup untuk menjalankan skrip dan melihat hasilnya.
deap Elasticsearch pysolr
Anda harus memeriksa lisensi mereka dan memutuskan apakah Anda ingin menggunakannya di perangkat lunak Anda. Algoritma genetika diimplementasikan menggunakan DEAP Framework.
Setiap kasus penggunaan mungkin perlu perubahan nilai algoritma genetika atau algoritma itu sendiri, tetapi konfigurasi yang diusulkan harus menjadi titik awal yang baik. Senang menggunakan!