Məzmuna keç
Educora
İrəli11-ci sinif22 dəq41 / 59

İnternetdə axtarış: axtarış sistemləri və sorğular

Axtarış sisteminin indekslə necə işlədiyini, AND, OR, NOT ilə sorğu qurmağı və Eyler–Venn diaqramları ilə sorğular üzrə tapılan səhifələrin sayını hesablamağı öyrənin.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • axtarış sisteminin robot, indeks və sıralama ilə necə işlədiyini izah etmək
  • AND, OR, NOT, mötərizə və dırnaqla sorğu yazmaq və sorğuları tapılan səhifələrin sayına görə düzmək
  • iki və üç açar söz üçün Eyler–Venn diaqramı qurub daxiletmə–çıxarma düsturunu tətbiq etmək
  • DİM-in axtarış sorğuları üzrə kodlaşdırılan tapşırıqlarını addım-addım həll etmək

Aysel Xəzər suitiləri haqqında layihə hazırlayır. Axtarış sisteminə «Xəzər» yazanda milyonlarla səhifə tapılır — hamısını oxumaq mümkün deyil. «Xəzər suitisi» yazanda nəticələr xeyli azalır, açar sözlərə «qorunması» sözünü də əlavə edəndə isə daha da azalır. Sorğunu düzgün qurmaq lazım olanı saatlarla yox, dəqiqələrlə tapmağa kömək edir. DİM-in qəbul imtahanında da bu mövzu yoxlanılır: 2025–2026-cı illərin dörd imtahanının üçündə kodlaşdırılan tapşırıq verilib — cədvəldə sorğular və tapılan səhifələrin sayı göstərilir, başqa bir sorğunun nəticəsini tapmaq lazımdır.

Axtarış sistemi necə işləyir

Tərif
Axtarış sistemi (axtarış serveri)

İstifadəçinin daxil etdiyi açar sözlərə görə internetdə uyğun veb-səhifələri tapan və onları siyahı şəklində göstərən xidmət. Məsələn: Google, Bing, Yandex.

Sorğu verildiyi anda axtarış sistemi bütün interneti gəzmir — bu, saatlar, hətta günlər çəkərdi. O, əvvəlcədən hazırlanmış indeksdə axtarır. İş belə gedir:

  1. 1
    Axtarış robotu səhifələri gəzir

    Xüsusi proqram — axtarış robotu («hörümçək», krauler) — səhifədən səhifəyə istinadlar vasitəsilə keçir və hər səhifənin mətnini yükləyir.

  2. 2
    İndeksləmə

    Hər söz üçün həmin sözün rast gəlindiyi səhifələrin siyahısı tərtib olunur. Bu, kitabın sonundakı əlifba göstəricisinə bənzəyir: «Nizami — səh. 12, 48, 95».

  3. 3
    Sorğunun emalı

    Sorğudakı açar sözlər indeksdə tapılır, onların səhifə siyahıları məntiqi əməllərə uyğun olaraq kəsişdirilir və ya birləşdirilir.

  4. 4
    Sıralama

    Tapılan səhifələr sorğuya uyğunluğuna görə düzülür: açar söz başlıqdadırmı, səhifəyə neçə sayt istinad edir və s. Nəticə səhifəsində təxmini say da göstərilir, məsələn, «təxminən 120 000 nəticə».

Deməli, hər açar söz müəyyən səhifələr çoxluğu verir: bu sözün rast gəlindiyi bütün səhifələr. Sorğudakı məntiqi əməllər isə bu çoxluqlar üzərində əməllərdir. Dərsin qalan hissəsi bu sadə fikrə əsaslanır.

Sorğu dili: AND, OR, NOT

Açar sözləri məntiqi əməllərlə birləşdirmək olar. DİM tapşırıqlarında əməllər ingiliscə yazılır — AND, OR, NOT; bəzi kitablarda onların yerinə &, | və ~ işarələri işlədilir. Bu əməlləri «Məntiq əməliyyatları və məntiq elementləri» dərsindən tanıyırsınız: indi onlar mülahizələrə yox, səhifə çoxluqlarına tətbiq olunur.

ƏməlYazılışıHansı səhifələr tapılırSəhifələrin sayı
VƏ (kəsişmə)A AND B, A & Bhər iki sözün olduğu səhifələrazalır
VƏ YA (birləşmə)A OR B, A | Bsözlərdən heç olmasa birinin olduğu səhifələrartır
DEYİL (inkar)A AND NOT B, A & ~BA sözü olan, B sözü olmayan səhifələrazalır
Dırnaq"A B"sözlərin məhz bu ardıcıllıqla yan-yana gəldiyi səhifələrazalır

Mötərizə olmayanda əvvəlcə NOT, sonra AND, ən sonda OR yerinə yetirilir. Məsələn, A OR B AND C sorğusu A OR (B AND C) deməkdir. Başqa ardıcıllıq lazımdırsa, mötərizə yazılır: (A OR B) AND C. Real axtarış sistemlərinin öz qaydaları da var: məsələn, Google-da boşluqla yazılan sözlər AND kimi birləşir, OR böyük hərflərlə yazılır, sözün qarşısındakı mənfi işarəsi (-reklam) həmin sözü istisna edir, dırnaq isə dəqiq ifadəni axtarır.

Sorğuları düzmək

Axtarış serverinə dörd sorğu verilib:
1) şahmat OR dama
2) şahmat AND dama AND turnir
3) şahmat
4) şahmat AND turnir
Sorğuların nömrələrini tapılan səhifələrin sayının artma sırası ilə düzün.

Həllini göstər
Hər sorğunu səhifələr çoxluğu kimi düşünək.
2-ci sorğunun hər səhifəsində üç söz birdən var, deməli, «şahmat» və «turnir» də var: bu səhifələr 4-cü sorğunun nəticəsinin içindədir.
4-cü sorğunun hər səhifəsində «şahmat» var: bu, 3-cü sorğunun bir hissəsidir.
«şahmat» olan hər səhifə 1-ci sorğuya da düşür, 1-ci sorğuya isə «dama» olan səhifələr də əlavə olunur.
Deməli, 2 ⊆ 4 ⊆ 3 ⊆ 1.
Cavab: 2, 4, 3, 1.

Eyler–Venn diaqramları: iki açar söz

Hər açar sözün tapdığı səhifələri dairə ilə göstərək. Dairələrin ortaq hissəsi hər iki sözün olduğu səhifələrdir (AND), iki dairənin birlikdə tutduğu bütün sahə OR-un nəticəsidir, dairənin digər dairəyə düşməyən hissəsi isə NOT ilə alınır. Belə şəkil Eyler–Venn diaqramı adlanır.

ABA ANDNOT BA ANDBB ANDNOT AA OR B
İki açar söz diaqramı üç hissəyə bölür.

A OR B sorğusunun səhifələrini saymaq üçün n(A) və n(B)-ni toplayanda ortaq hissə iki dəfə sayılır: o, həm A dairəsinin, həm də B dairəsinin içindədir. Ona görə onu bir dəfə çıxırıq:

n(A OR B) = n(A) + n(B) − n(A AND B)
burada:
  • n(A), n(B)A və B sorğuları üzrə tapılan səhifələrin sayı
  • n(A AND B)hər iki sözün olduğu səhifələrin sayı
  • n(A OR B)sözlərdən heç olmasa birinin olduğu səhifələrin sayı

İki çoxluq üçün daxiletmə–çıxarma düsturu. Dörd kəmiyyətdən üçü məlumdursa, dördüncüsü tapılır.

n(A AND NOT B) = n(A) − n(A AND B)
burada:
  • n(A AND NOT B)A sözü olan, amma B sözü olmayan səhifələrin sayı

A dairəsindən ortaq hissə çıxılır — B-nin hamısı yox!

İki açar söz

Cədvəldə sorğular və tapılan səhifələrin sayı verilmişdir:
futbol — 520
voleybol — 380
futbol OR voleybol — 760
a) futbol AND voleybol, b) futbol AND NOT voleybol, c) voleybol AND NOT futbol sorğuları üzrə neçə səhifə tapılar?

Həllini göstər
a) n(futbol AND voleybol) = 520 + 380 − 760 = 140.
b) n(futbol AND NOT voleybol) = 520 − 140 = 380.
c) n(voleybol AND NOT futbol) = 380 − 140 = 240.
Yoxlama: üç hissənin cəmi 380 + 140 + 240 = 760 = n(futbol OR voleybol). ✓
Düsturdan naməlumu tapmaq

1) n(A) = 250, n(B) = 400, n(A AND B) = 90. n(A OR B) = ?
2) n(A OR B) = 900, n(A) = 600, n(A AND B) = 150. n(B) = ?
3) n(A) = 330, n(B) = 270, n(A OR B) = 600. n(A AND B) = ? Bu nə deməkdir?

Həllini göstər
1) n(A OR B) = 250 + 400 − 90 = 560.
2) 900 = 600 + n(B) − 150 ⇒ n(B) = 900 − 600 + 150 = 450.
3) n(A AND B) = 330 + 270 − 600 = 0: ortaq səhifə yoxdur, dairələr kəsişmir.

Üç açar söz: DİM tapşırıqları

Üç açar söz olanda üç dairə diaqramı 7 hissəyə bölür. Hissələri nömrələyək və hər hissədəki səhifələrin sayını N₁, N₂, …, N₇ ilə işarə edək. Hər sorğu bu hissələrin bəzilərinin cəmidir — tapşırığın bütün sirri bundadır.

ABC1234567
Hissələrin nömrələnməsi: 1–3 — bir dairə, 4–6 — iki dairə, 7 — üç dairə.
SorğuDiaqramın hissələri
A1 + 4 + 5 + 7
A AND B4 + 7
A AND B AND C7
(A OR B) AND C5 + 6 + 7
A AND NOT B1 + 5
A OR B OR C1 + 2 + 3 + 4 + 5 + 6 + 7
n(A OR B OR C) = n(A) + n(B) + n(C) − n(A AND B) − n(A AND C) − n(B AND C) + n(A AND B AND C)
burada:
  • n(A AND B AND C)üç sözün hamısının olduğu səhifələrin sayı (mərkəz, 7-ci hissə)

Üç çoxluq üçün daxiletmə–çıxarma düsturu: cütlərin kəsişmələri çıxılanda mərkəz üç dəfə çıxılır, ona görə bir dəfə geri əlavə olunur.

  1. 1
    Diaqram çəkin

    Açar sözlər qədər dairə çəkin və hissələri nömrələyin.

  2. 2
    Cədvəli hissələrlə yazın

    Cədvəlin hər sətrini hissələrin cəmi kimi yazın, məsələn: n(B AND C) = N₆ + N₇.

  3. 3
    Mərkəzdən başlayın

    Ən dar sorğudan (adətən üç sözün AND-i) başlayın və hissələri içəridən çölə doğru tapın.

  4. 4
    Soruşulan sorğunu hissələrlə yazın

    Hansı hissələrin cəmi lazım olduğunu müəyyən edin və hesablayın.

  5. 5
    Yoxlayın

    Heç bir hissə mənfi olmamalıdır; mümkünsə cavabı düsturla da yoxlayın.

Kodlaşdırılan tapşırıq 1

Cədvəldə sorğular və axtarış serverinin tapdığı səhifələrin sayı verilmişdir:
(kitab OR jurnal) AND poeziya — 540
kitab AND poeziya — 310
jurnal AND poeziya — 290
kitab AND jurnal AND poeziya sorğusu üzrə neçə səhifə tapılar?

Həllini göstər
A = kitab, B = jurnal, C = poeziya olsun. Bütün sorğularda «poeziya» var, deməli, yalnız C dairəsinin içinə baxırıq.
n(kitab AND poeziya) = N₅ + N₇ = 310
n(jurnal AND poeziya) = N₆ + N₇ = 290
n((kitab OR jurnal) AND poeziya) = N₅ + N₆ + N₇ = 540
İlk iki bərabərliyi toplasaq, N₇ iki dəfə sayılır: (N₅ + N₇) + (N₆ + N₇) = 600.
Deməli, N₇ = 600 − 540 = 60.
Cavab: 60.
Kodlaşdırılan tapşırıq 2

Cədvəldə sorğular və tapılan səhifələrin sayı verilmişdir:
Xəzər AND neft AND qaz — 90
neft AND qaz — 230
Xəzər AND qaz — 170
(Xəzər OR neft) AND qaz sorğusu üzrə neçə səhifə tapılar?

Həllini göstər
A = Xəzər, B = neft, C = qaz.
N₇ = 90 (üç sözün hamısı).
n(neft AND qaz) = N₆ + N₇ = 230 ⇒ N₆ = 140.
n(Xəzər AND qaz) = N₅ + N₇ = 170 ⇒ N₅ = 80.
n((Xəzər OR neft) AND qaz) = N₅ + N₆ + N₇ = 80 + 140 + 90 = 310.
Qısa yol: 170 + 230 − 90 = 310 — bu, C dairəsinin içində iki dairə üçün daxiletmə–çıxarma düsturudur.
Cavab: 310.
Kodlaşdırılan tapşırıq 3: bütün diaqram

Cədvəldə sorğular və tapılan səhifələrin sayı verilmişdir:
A — 400
B — 500
C — 300
A OR B OR C — 970
A AND B — 100
A AND C — 70
A AND B AND C — 30
B AND NOT C sorğusu üzrə neçə səhifə tapılar?

Həllini göstər
B AND NOT C — B dairəsinin C-yə düşməyən hissəsidir: N₂ + N₄.
Bütün diaqram 970-dir. C dairəsini (300) çıxsaq, N₁ + N₂ + N₄ = 970 − 300 = 670 qalır.
İndi N₁-i (yalnız A) tapaq: N₇ = 30; N₄ = 100 − 30 = 70; N₅ = 70 − 30 = 40; N₁ = 400 − 70 − 40 − 30 = 260.
Deməli, N₂ + N₄ = 670 − 260 = 410.
Diqqət: B AND C cədvəldə verilməyib, amma ona ehtiyac da yoxdur.
Cavab: 410.

Sorğu əməlləri Python-dakı çoxluq əməllərinə tam uyğundur: & — AND, | — OR, - — AND NOT. Kiçik nümunədə düsturu özünüz yoxlayın (səhifələr nömrələrlə göstərilib):

Python
football = {1, 2, 3, 4, 5, 6, 7}
volleyball = {5, 6, 7, 8, 9}
basketball = {2, 7, 9, 10}

print('football AND volleyball:', sorted(football & volleyball))
print('football OR volleyball:', sorted(football | volleyball))
print('football AND NOT volleyball:', sorted(football - volleyball))
print('(football OR volleyball) AND basketball:',
      sorted((football | volleyball) & basketball))

# inclusion-exclusion: n(A OR B) = n(A) + n(B) - n(A AND B)
n_or = len(football) + len(volleyball) - len(football & volleyball)
print(n_or, len(football | volleyball))
▸ Gözlənilən nəticə
football AND volleyball: [5, 6, 7]
football OR volleyball: [1, 2, 3, 4, 5, 6, 7, 8, 9]
football AND NOT volleyball: [1, 2, 3, 4]
(football OR volleyball) AND basketball: [2, 7, 9]
9 9
Çoxluqları dəyişib başqa sorğuları da yoxlayın.
Tez hesablayın
  1. 1.n(A) = 300, n(B) = 200, n(A AND B) = 50. n(A OR B) =
  2. 2.n(A) = 300, n(A AND B) = 50. n(A AND NOT B) =
  3. 3.n((A OR B) AND C) = 400, n(A AND C) = 250, n(B AND C) = 230. n(A AND B AND C) =
  4. 4.n(A AND B AND C) = 40, n(A AND C) = 150, n(B AND C) = 110. n((A OR B) AND C) =

Əsas fikirlər

  • Axtarış sistemi internetin özündə yox, robotların əvvəlcədən topladığı indeksdə axtarır.
  • AND səhifələrin sayını azaldır (kəsişmə), OR artırır (birləşmə), NOT istisna edir; mötərizə olmayanda ardıcıllıq: NOT, AND, OR.
  • n(A OR B) = n(A) + n(B) − n(A AND B); n(A AND NOT B) = n(A) − n(A AND B).
  • Üç açar söz diaqramı 7 hissəyə bölür; hər sorğu bu hissələrin cəmidir.
  • DİM tapşırığında mərkəzdən (üç sözün AND-i) başlayın, içəridən çölə doğru hesablayın və heç bir hissənin mənfi olmadığını yoxlayın.

Özünü yoxla

12 sual. Hər düzgün cavab XP qazandırır.

1 / 12
Axtarış robotu (krauler) nə edir?