Spiegazione della ricerca booleana


29

Mia madre sta seguendo un corso online per essere una sorta di bibliotecaria, in questo corso coprono ricerche booleane, quindi possono cercare database in modo efficiente, tuttavia, ha una domanda che suona in questo modo:

La ricerca "x OR y" genererà 105.000 risultati, mentre una ricerca di solo x comporterà 80.000 risultati e una ricerca di solo y otterrà 35.000 risultati. Perché la ricerca "x OR y" genera 105000 risultati, quando le singole ricerche combinate danno 115.000 risultati?

Per me sembrava strano, quindi l'ho provato io stesso, usando le parole pancetta e sandwich .

  • Solo la pancetta ha prodotto 179.000.000 di risultati
  • Solo il sandwich ha prodotto 312.000.000 di risultati
  • pancetta o sandwich ha dato 491.000.000 di risultati

Ma per me si somma: 179.000.000 (pancetta) + 312.000.000 (sandwich) = 491.000.000 (pancetta O sandwich)

Perché una query OR può comportare meno hit rispetto a entrambe le singole query combinate?


22
Hai un cane blu, un gatto blu e un gatto rosso. NUMERO DI (BLU) = 2, NUMERO DI (GATTO) = 2, ma NUMERO DI (BLU o GATTO) = 3, non 4.
BlueRaja - Danny Pflughoeft

11
Ho provato questo, ho ottenuto 184 milioni di risultati per la pancetta. Non sono mai andato alla ricerca di tramezzini, dato che me ne sono subito andato a friggermi un po 'di pancetta.
corsiKa

15
Penso che il vero problema qui sia che il tuo database non contiene sandwich al bacon.
MooseBoys,

@MooseBoys sì, questo deve essere il motivo per cui i miei numeri si sommano, dal momento che non dovrebbero, giusto?
sch

3
@klskl: se stai ricevendo quei numeri da Google, tieni presente che questi numeri sono stime molto approssimative. Potrebbe benissimo essere il caso che, per ottenere la stima di "pancetta o sandwich", sommino semplicemente i numeri. Funziona solo perché non è necessario che la stima abbia alcun tipo di precisione.
BlueRaja - Danny Pflughoeft

Risposte:


62

Suggerimento: la ricerca x AND y comporterà 10.000 risultati.


sì, ma non è questo il punto, gli insegnanti sostengono che la loro ricerca x OR y fornisce meno risultati rispetto alla combinazione dei risultati della ricerca individuale x quindi y
sch,

63
No, non è questo il punto. Al contrario, è il punto stesso.
Yuval Filmus,

Sono nuovo di questo, ti interessa elaborare? Da quello che ho capito E darò risultati con entrambe le parole, quindi meno risultati di ciascuno individualmente, ma che cosa ha a che fare con OR?
sch

2
Quando AND è vuoto OR funziona come ADD, altrimenti non lo è. @klskl le informazioni di x AND y sono cruciali.
Evil

@YuvalFilmus Vedo ora, è questo il punto! (Ero tipo, hamburger e sandwich non danno 10.000 colpi ...) grazie
sch

93

Il principio di conteggio che si applica qui è l' inclusione-esclusione .

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

|XY|

Un diagramma di Venn può essere più convincente per qualcuno che può essere intimidito dalla notazione.

diagramma di Venn


4
Questo è davvero buono, lo userò per spiegare a mia madre, davvero pulito, grazie!
sch

3
|XY|=|X|+|Y||XY||XY||X||Y||X|+|Y|
Devsman,

La matematica funziona e ha senso, ma non corrisponde all'algebra impostata proprio sopra di essa.
Kevin Brown,

Ricordo di aver fatto i diagrammi di Venn quando avevo 4-5 anni. Sono davvero sottovalutati. Grazie John Venn.
Pharap,

1
@Pharap In effetti, tali diagrammi meritano la nostra Venn-eration.
Mason Wheeler,

13

Documento 1: il gatto è sul tavolo
Documento 2: il mio gatto è nero
Documento 3: il cane è sotto il tavolo
Documento 4: come si chiama il tuo gatto?
Documento 5: questa è una foto in bianco e nero

Cerca gatto : i documenti restituiti sono 1,2,4 (3 documenti restituiti)
Cerca il nero : i documenti restituiti sono ...
Cerca il gatto O il nero : i documenti restituiti sono ...

MrGreen MrGreen


3

In parole semplici:

Cerca X ti dà n risposte.
Cerca Y ti dà m risposte.
Cerca X AND Y ti dà p risposte.

Nella ricerca di X OR Y, la ricerca si interrompe non appena trova X o Y. Quindi, se c'è una X prima di una Y, Y non verrà conteggiato nella ricerca di X OR Y. Pertanto, la ricerca di X OR Y ti darà n + m - p risposte.

È importante notare che i risultati saranno gli stessi, indipendentemente dal fatto che tu esegua 2 ricerche o solo una. È solo che nel sommare le due ricerche, alcuni documenti vengono conteggiati due volte.


"la ricerca si interrompe non appena trova X o Y." Questo non dipende dall'implementazione? Un'implementazione potrebbe ottenere tutti i risultati per X, ottenere tutti i risultati per Y e quindi combinare i risultati in modo da eliminare i duplicati.
jpmc26,

@ArnabDatta Quello che ho descritto non è sicuramente un XOR. "Eliminare i duplicati" significa eliminare la seconda copia, non tutte le istanze di quell'elemento.
jpmc26,

Vero. Ho frainteso. Rimosso il mio commento
Arnab Datta,

3

Immagina di avere un solo documento. Questo è il documento n. 1 con questo:

X Y

Ora immagina di avere una funzione di ricerca che può darti tutti i documenti basati su una parola chiave:

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

Si noti che il numero di documenti in entrambi i casi è 1. Ora se si dispone di una funzione di ricerca che fornisce il numero di documenti che corrispondono a una o più parole chiave fornite:

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

Quando si aggiunge il numero di documenti contenenti Xal numero di documenti che contengono Y, questo fa contare due volte lo stesso documento. Nel tuo caso, questo è successo 10000volte come indicato sopra :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.