Skip to content

Sentence similarity vasitəsilə sorğuya uyğun sənədin tapılması

Notifications You must be signed in to change notification settings

vrashad/document_find

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Sənəd axtarışı

multilingual-e5-largeChromaDB istifadə edərək, təbii dildə sənəd axtarışını həyata keçirən proyekt.

İstifadə qaydası:

1- Sənədlərin vektorlaşdırılması

İlk olaraq multilingual-e5-large modelindən istifadə edərək, txt formatında olan sənədləri vektorlaşdırmaq lazımdır və sonra əldə olunan vektorları ChromaDB vasitəsilə tərtib edilən local vektor verilənlər bazasına daxil etmək lazımdır

Mən test üçün Dövlət Yol Polisinə aid olan qanunvericilik toplusundan istifadə edirəm. Siz istədiyiniz sənədlərdən istifadə edə bilərsiniz

Sənədləri hazırladıqdan sonra, onları bir qovluğda toplayırıq. Bu mövzuda sənədlərin normallaşdırılmasına toxunmayacağıq

Sonra vektorların saxlanacağı boş qovluğu təyin etməliyik

Gəlin bu məqsədlə vectors adlı boş qovluqdan istifadə edək

Bu etapları bitirdikdən sonra, lazım olan paketləri yükləməliyik

pip install chromadb sentence-transformers

Paketlərin yüklənilməsi başa çatdıqdan sonra, sənədlərin vektorlaşdırılması əməliyyata keçirik

vector_generate.py

Script-i icra edərkən bizdən bəzi məlumatların daxil edilməsi tələb olunacaq

Please enter collection name: Vektorların saxlanıldığı kolleksiyanın adı (misal üçün DYP)
Please enter collection folder: Vektorların saxlanılacağı boş qovluğun tam ünvanı (misal üçün D:\GitHub\document_find\vectors)
Please enter source TXT files folder: Sənədlərin yerləşdiyi qovluğun tam ünvanı (misal üçün D:\GitHub\document_find\documents)
Use default model ? Y/N (Default: intfloat/multilingual-e5-large: Burada əgər başqa bir modeldən istifadə edilməyəcəksə, o zaman sadəcə Y daxil etmək lazımdır

Vektorlaşma prosesi bitdikdən sonra, vectors qovluğunda SQLite formatında fayl və indeks adına uyğun olaraq qovluq əmələ gələcək

Bu o deməkdir ki, vektorlaşma başa çatdı və sənədlərin vektorları fiziki olaraq məhz bu qovluqda saxlanılır

2- Sənədlərin axtarışı

Sənədləri vektorlaşdırdıqdan sonra, axtarış prosessinə keçə bilərik

seach.py

Script-i icra edərkən bizdən bəzi məlumatların daxil edilməsi tələb olunacaq

Please enter search query: Axtarış sorğusu (misal üçün Baş Dövlət Yol Polisi İdarəsinin rəisinin əlaqə nömrəsi)
Count of most suitable documents: Axtarışa ən çox uyğun olan sənədlərin sayı (misal üçün 5)
Please enter collection name: Vektorların saxlanıldığı kolleksiyanın adı DYP. Bu ad axtarışın həyata keçiriləcəyi sənədlərin vektorlarının saxlanıldığı kolleksiyanın adına tam uyğun olmalıdır
Please enter collection folder: Vektorların saxlanılacağı boş qovluğun tam ünvanı D:\GitHub\document_find\vectors. Bu ad ünvan axtarışın həyata keçiriləcəyi sənədlərin vektorlarının saxlanıldığı qovluğun ünvanına tam uyğun olmalıdır
Use default model ? Y/N (Default: intfloat/multilingual-e5-large: Burada əgər başqa bir modeldən istifadə edilməyəcəksə, o zaman sadəcə Y daxil etmək lazımdır. Sənədləri vektorlaşdırdıqda hansı modeldən istifadə etmişiksə, axtarışda da o modeldən istifadə etməliyik

Misal üçün əgər belə bir axtarış həyata keçirsək İçkili halda avtomobil idarə etmənin cəriməsi

Belə bir nəticə əldə edəcəyik

ID: 8, Distance: 0.35491715843068655, Source: Cərimələr.txt
ID: 14, Distance: 0.3563939807194985, Source: Piyadanın məsuliyyəti.txt
ID: 25, Distance: 0.3725210719916774, Source: Nəqliyyat vasitələri sürücülərinin hazırlanması və onların ixtisasının artırılması kursları haqqında Əsasnamə.txt
ID: 23, Distance: 0.3793541471490398, Source: Sürücülük vəsiqəsinin verilməsi və dəyişdirilməsi.txt
ID: 18, Distance: 0.38118660012431993, Source: Sürücülük vəsiqələrinin verilməsi və dəyişdirilməsi qaydaları haqqında TƏLİMAT.txt

Axtarış prosesində Count of most suitable documents: dəyər olaraq 5 daxil etdiyimizdən, axtarış sorğusunu uyğun olan top 5 vektoru əldə edirik

Əldə edilən vektorlar uyğunluğunu görə azalma sırası ilə düzülür

Distance, yəni k bucağı nə qədər kiçik olsa bir o qədər sənəd axtarılan sorğuya uyğun olacaq

Nəticədə biz vektorun ID-sini, vektorlar arasındakı məsafəni və vektorun hansı fayla aid olduğu məlumatını əldə edə bilirik

About

Sentence similarity vasitəsilə sorğuya uyğun sənədin tapılması

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages