Бульний пошук пояснив


29

Моя мама проходить курс онлайн для того, щоб бути бібліотекою свого роду, в цьому курсі вони охоплюють булеві пошуки, щоб вони могли ефективно шукати бази даних, однак у неї з'явилося запитання, яке звучить приблизно так:

Пошук "x АБО" призведе до 105 000 звернень, тоді як пошук лише x призведе до 80 000 звернень, а для пошуку лише y - 35 000 звернень. Чому пошук "x АБО" дає 105 000 звернень, коли комбінований індивідуальний пошук дає 115 000 звернень?

Для мене це звучало дивно, тому я сам тестував це, використовуючи слова бекон і сендвіч .

  • Тільки бекон дав 179 000 000 результатів
  • Тільки сендвіч дав 312 000 000 результатів
  • бекон або бутерброд дали 491 000 000 результатів

Але для мене це складає: 179 000 000 (бекон) + 312 000 000 (сендвіч) = 491 000 000 (бекон АБО бутерброд)

Чому запит АБО може спричинити кількість звернень, ніж обидва окремі запити разом?


22
У вас є блакитна собака, синій кіт і червоний кіт. ЧИСЛО (BLUE) = 2, ЧИСЛО (CAT) = 2, але НОМЕР (BLUE або CAT) = 3, а не 4.
BlueRaja - Danny Pflughoeft

11
Я спробував це, отримав 184 мільйони результатів для бекону. Ніколи не встигав шукати бутерброди, тому що я одразу залишився обсмажити собі сала.
corsiKa

15
Я думаю, що справжня проблема полягає в тому, що у вашій базі даних немає бутербродів із беконом.
MooseBoys

@MooseBoys так, це, мабуть, тому мої номери складаються, оскільки вони не повинні, правда?
sch

3
@klskl: Якщо ви отримуєте ці цифри від google, пам’ятайте, що ці цифри є дуже приблизними. Цілком може статися так, що, щоб отримати оцінку "бекон чи бутерброд", вони просто підсумовують цифри. Це працює лише тому, що для оцінки не потрібно мати будь-якої точності.
BlueRaja - Danny Pflughoeft

Відповіді:


62

Підказка: пошук x AND y призведе до 10 000 звернень.


так, але це, окрім справи, викладачі стверджують, що їхній х АБО пошук дає менше звернень, ніж поєднання хітів індивідуального пошуку x, то y
sch

63
Ні, це не поруч. Навпаки, справа сама в цьому.
Yuval Filmus

Я новачок у цьому, хочете розробити? З того, що я розумію, І дасть результати з обома словами в них, отже, менше результатів, ніж кожне окремо, але що це стосується АБО?
sch

2
Коли AND порожній АБО працює як ADD, інакше це не так. @klskl інформація x AND y має вирішальне значення.
Зло

@YuvalFilmus Я бачу зараз, справа в цьому! (Мені подобалось, гамбургер І сендвіч не дає 10 000 переглядів ...) дякую
sch

93

Принцип підрахунку, який застосовується тут, - це включення-виключення .

|XY|=|X|+|Y||XY|

|XY|

Діаграма Венна може бути більш переконливою для того, кого може залякати нотація.

Діаграма Венна


4
Це дійсно добре, використаю це, щоб пояснити моїй мамі, дійсно чисто, дякую!
sch

3
|XY|=|X|+|Y||XY||XY||X||Y||X|+|Y|
Девсман

Математика працює, і це має сенс, але вона не відповідає заданій алгебрі прямо над нею.
Кевін Браун

Я пам'ятаю, як робив діаграми Венна, коли мені було 4-5 років. Вони дійсно занижені. Дякую, Джон Венн
Фарап

1
@Pharap Дійсно, такі діаграми заслуговують нашої Веннерації.
Мейсон Уілер

13

Документ 1: Кішка на столі
Документ 2: Мій кіт чорний
Документ 3: Собака знаходиться під столом
Документ 4: Як звати вашу кішку?
Документ 5: Це чорно-біла фотографія

Шукати кішку : повернені документи 1,2,4 (3 повернуті документи)
Пошук чорного : повернені документи є ...
Пошук кішки АБО чорні : повернені документи є ...

:-D :-D


3

Простими словами:

Пошук X дає вам n відповідей.
Пошук Y дає вам відповіді.
Пошук X І Y дає відповіді на питання.

У пошуках X OR Y, пошук припиняється, як тільки він знаходить або X, або Y. Отже, якщо перед Y є X, Y не враховуватиметься в пошуку X OR Y. Тому ваш пошук X OR Y дасть вам n + m - p відповіді.

Важливо зауважити, що результати будуть однаковими, незалежно від того, ви робите 2 пошукові запити чи лише один. Просто підсумовуючи два обшуки, деякі документи рахуються двічі.


"пошук припиняється, як тільки він знаходить або X, або Y." Це не залежить від впровадження? Реалізація може отримати всі результати для X, отримати всі результати для Y, а потім об'єднати результати таким чином, що виключає дублікати.
jpmc26

@ArnabDatta Те, що я описав, напевно, не є XOR. "Усунення дублікатів" означає усунення другої копії, а не всіх примірників цього елемента.
jpmc26

Правда. Я неправильно зрозумів. Видалили мій коментар.
Арнаб Датта

3

Уявіть, у вас є лише один документ. Це Документ №1 із цим:

X Y

Тепер уявіть, що у вас є функція пошуку, яка може надати вам усі документи на основі одного ключового слова:

search("X") => 1
search("Y") => 1

Зверніть увагу, що кількість документів в обох випадках становить 1. Тепер, якщо у вас є функція пошуку, яка дає вам кількість документів, які відповідають одному або декільком наданим ключовим словам:

search("X", "Y") => 1

Якщо ви додасте кількість документів, що містять Xкількість документів, що містять Y, це змушує вас рахувати один і той же документ двічі. У вашому випадку це траплялося 10000раз, як зазначено вище :)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.