Butun axtardiqlarinizi tapmaq ucun buraya: DAXIL OLUN
  Mp4 Mp3 Axtar Yukle
  Video Axtar Yukle
  Shekil Axtar Yukle
  Informasiya Melumat Axtar
  Hazir Inshalar Toplusu
  AZERI CHAT + Tanishliq
  1-11 Sinif Derslikler Yukle
  Saglamliq Tibbi Melumat
  Whatsapp Plus Yukle(Yeni)

  • Ana səhifə
  • Təsadüfi
  • Yaxınlıqdakılar
  • Daxil ol
  • Nizamlamalar
İndi ianə et Əgər Vikipediya sizin üçün faydalıdırsa, bu gün ianə edin.

SimHash

  • Məqalə
  • Müzakirə

SimHash — Kompüter elmlərində, xüsusilə mətn üzərində olan əməliyyatların sıx olduğu, axtarış mühərriki kimi tətbiqlərdə faylların və ya veb saytlarının bir-birinə olan bənzərliyini tapmaq üçün istifadə edilən alqoritmdir.

Alqoritmə alternativ olaraq klassik hash funksiyaları istifadə edilə bilər. Məsələn iki veb səhifənin ayrı-ayrı hash qiymətləri alınıb bu dəyərləri müqayisə etmək mümkündür. Ancaq simhash alqoritmi, bu üsula görə daha çox sürət və performans təqdim edir.

SimHash alqoritmi, iki faylı bir vektor olaraq görür və bu vektorlar arasındakı kosinusu tapır.

Yuxarıdakı şəkildən də görsəndiyi kimi ayrı-ayrı iki sənədin xüsusi vektor olması vəziyyətində, aralarında cos (x) olaraq göstərilən bir bucaq ilə əlaqə qurulması mümkündür.

Alqoritm, əvvəlcə işlədiyi mətndəki sözlərin ağırlıqlarını (weight) çıxarır və buna görə də sözləri sıralayır.

Sıralanan hər sözə, b uzunluğunda, yeganə (unique) qiymət qaytaran funksiya istifadə olunur. Məsələn hər söz üçün fərqli bir hash qiyməti qaytaran funksiya istifadə edilə bilər.

b ölçüsündəki bir vektorun ağırlıq dəyəri hesablanarkən, hər sözdəki 1 qiyməti üçün +1 və 0 qiyməti üçün -1 dəyəri əlavə olunur.

Son olaraq çıxarılan ağırlıq vektorundakı + dəyərlər 1, 0 və - dəyərlər isə 0 olaraq çevrilir.

Məsələn bir nümünə üzrə izah edək.

“code org code yazmaq saytıdır”

Yuxarıdakı mətni alqoritm üzrə işləyək. İlk olaraq hər bir sözün ağırlıq dərəcəsini hesablayırıq.

Code 2, org 1, yazmaq 1, saytıdır 1

İndi hər bir söz üçün barmaq izi (fingeprint) yaradırıq. Barmaq izləri yalnız bir sözə məxsus olur. Bu qiymət Hash funksiyalarından yaradılır. Biz sadəlik olsun deyə təsadüfi qiymətlər verəcəyik, amma real tətbiqlərdə təsadüfi ədələrdən istifadə oluna bilməz.

Indi bu ədədləri toplayaq:

Simhash Cəm
Simhash Cəm

Alınan nəticəni ikilik koda çevirik və bu bizim simhash qiymətimiz olur.

1 0 0 1 0 0 1 0

Fərz edək ki, başqa bir mətn üzərində də eyni bir əməliyyatı aparmışıq və nəticə olaraq

1 1 0 1 1 1 0 1

qiyməti almışıq.

Sonda biz hər iki qiyməti bir-biri ilə müqayisə edirik.

Simhash fərqlər
Simhash fərqlər

Bu iki simhash qiyməti arasındakı bit fərqi 4-ə bərabərdir. Bu o deməkdir ikinci hash qiymətini çıxardığımız mətn birinci mətnə (“code org code yazmaq saytıdır”) 4 məsafəsində yaxındır.

Mənbə — "https://az.wikipedia.org/w/index.php?title=SimHash&oldid=7259548"
Informasiya Melumat Axtar