Upload
christian-canedo
View
248
Download
0
Embed Size (px)
Citation preview
8/17/2019 Modelo Booleano
1/16
MODELO BOOLEANO
8/17/2019 Modelo Booleano
2/16
MODELO BOOLEANO
• La relevancia es binaria: un documento es relevante o no lo es.• Consultas de una palabra: un documento es relevante sii contiene la
palabra.
• Consultas AND: los documentos deben contener todas las palabras.
• Consultas OR: los documentos deben contener alguna palabra.
• Consultas A BUTNOT B: los documentos deben ser relevantes paraA pero no para B.
• Ejemplo: lo mejor de Maradona
Maradona AND Mundial
AND (( Mexico’86 OR Italia’90 ) BUTNOT U.S.A. ’94)
• Es el modelo más primitivo y bastante malo para RI.
• Sin embargo es bastante popular.
8/17/2019 Modelo Booleano
3/16
Ejemplo
(matriz término documento)
• D1: Vendo autos y camionetas
• D2: Autos usados
•
D3: Excelente oferta de camionetas• D4: Autos de segunda mano
• D5: Autos y camionetas de ocasión
• D6: Permuto autos por camionetas
8/17/2019 Modelo Booleano
4/16
MATRIZ TERMINO DOCUMENTO
D1 D2 D3 D4 D5 D6
autos x x x x x
camionetas x x x x
usados
excelente x
oferta x
segunda x
mano xocasión x
permuto x
8/17/2019 Modelo Booleano
5/16
Operadores sobre la colección
AND
OR
NOT
8/17/2019 Modelo Booleano
6/16
Modelo Booleano, lo malo
• No discrimina entre documentos más y menos relevantes.
• Da lo mismo que un documento contenga una o cien veces laspalabras de la consulta.
• Da lo mismo que cumpla una o todas las cláusulas de un OR.
• No considera un calce parcial de un documento ej: que cumpla concasi todas las cláusulas de un AND.
• No permite siquiera ordenar los resultados.
• El usuario promedio no lo entiende.
“ Necesito investigar sobre los Aztecas y sobre los Incas”Aztecas AND Incas
( grave error se perderán excelentes documentos que traten una solade las culturas en profundidad debió ser Aztecas OR Incas)
8/17/2019 Modelo Booleano
7/16
Modelo Booleano, por qué es popular
• Es de las primeras ideas que a uno se le ocurren.
• Muchos de los primeros sistemas de RI se basaron enél.
•
Es la opción favorita para insertar texto en un RDBMS.• Es simple de formalizar y eficiente de implementar.
• En algunos casos (usuarios expertos) puede seradecuado.
• Puede ser útil en combinación con otro modelo ej. paraexcluír documentos.
8/17/2019 Modelo Booleano
8/16
D1(57)Todo el mundo tiene un pasado personal. Alguienpuede venir de Python, otro de Perl, y pueden versesorprendidos por distintos aspectos del lenguaje.Entonces podrían decir 'Estoy sorprendido por estacaracterística del lenguaje, así que Ruby viola elprincipio de la menor sorpresa. El principio de la
menor sorpresa no es sólo para ti. El principio de lamenor sorpresa significa el principio de 'mi' menorsorpresa. Y significa el principio de la menorsorpresa después de que aprendes bien Ruby. Por
ejemplo, fui programador de C++ antes de empezara diseñar Ruby. Programé exclusivamente en C++durante dos o tres años. Y después de dos años deprogramar en C++, todavía me sorprendía.
8/17/2019 Modelo Booleano
9/16
D2(46)La sintaxis de Ruby es similar a la de Perl o Python.
La definición de clases y métodos está definida porpalabras clave. Sin embargo, en Perl, las variables
no llevan prefijos. Cuando se usa, un prefijo indica
el ámbito de las variables. La mayor diferencia con
C y Perl es que las palabras clave son usadas para
definir bloques de código sin llaves. Los saltos de
línea son significativos y son interpretados como el
final de una sentencia; el punto y coma tiene elmismo uso. De forma diferente que Python, la
indentación no es significativa
8/17/2019 Modelo Booleano
10/16
D3(35)
Ruby es un lenguaje con un balance cuidado. Su
creador, Yukihiro “Matz” Matsumoto, mezcló
partes de sus lenguajes favoritos (Perl, Smalltalk,
Eiffel, Ada y Lisp) para formar un nuevo lenguaje
que incorporara tanto la programación funcionalcomo la imperativa.
A menudo ha manifestado que está “tratando
de hacer que Ruby sea natural, no simple”, deuna forma que se asemeje a la vida real.
8/17/2019 Modelo Booleano
11/16
Consulta Q: python
and perl
Resultado: D1, D2
D1 D2 D3
python X X
perl X X
sorprendidos X
lenguaje X X
ruby X X X
principio X
programador X
C++ X
diseñar X
sintaxis X
definición X
clases X
métodos X
variables X
prefijo Xámbito X
c X
palabras X
clave X
código X
interpretados X
sentencia X
balance X
smalltalk X
eiffel X
ada X
lisp X
programació
n
X
funcional X
imperativa X
natural X X
8/17/2019 Modelo Booleano
12/16
Consulta C: python and perl
Representando en función
de los términos:
Q =
D1=
D2=
D3=
Para buscar la similitud
QxD1, QxD2, QxD3
D1 D2 D3
python 1 1 0
perl 1 1 0
sorprendidos 1 0 0
lenguaje 1 0 1
ruby 1 1 1
principio 1 0 0
programador 1 0 0
C++ 1 0 0
diseñar 1 0 0
sinta1is 0 1 0
definición 0 1 0
clases 0 1 0
métodos 0 1 0
variables 0 1 0
prefijo 0 1 0
ámbito 0 1 0
c 0 1 0
palabras 0 1 0
clave 0 1 0
código 0 1 0
interpretados 0 1 0
sentencia 0 1 0
balance 0 0 1
smalltalk 0 0 1
eiffel 0 0 1
ada 0 0 1
lisp 0 0 1
programación 0 0 1
funcional 0 0 1
imperativa 0 0 1
natural 0 1 1
8/17/2019 Modelo Booleano
13/16
• QxD1: = 2
• QxD2: = 2
• QxD3: = 0
Resultado D1,D2, ya se podría tener un criterio de
orden en función del resultado
8/17/2019 Modelo Booleano
14/16
Consulta C: python and perl
Representando en función de
los términos:Q =
D1=
D2=
D3=
Para buscar la similitud
QxD1, QxD2, QxD3
Esta operación se llama
WEIGHTING
D1 D2 D3
python 1 2 0
perl 1 3 0
sorprendido 2 0 0
lenguaje 2 0 2
ruby 3 1 2
principio 1 0 0
programador 1 0 0
C++ 3 0 0
diseñar 1 0 0
sintaxis 0 1 0
definición 0 1 0
clases 0 1 0
métodos 0 1 0
variables 0 1 0
prefijo 0 1 0
ámbito 0 1 0
C 0 1 0
palabras 0 1 0
clave 0 1 0
Código 0 1 0
interpretados 0 1 0
sentencia 0 1 0
Balance 0 0 1
Smalltalk 0 0 1
Eiffel 0 0 1
Ada 0 0 1
lisp 0 0 1
programación 0 0 1
funcional 0 0 1
imperativa 0 0 1
natural 0 1 1
8/17/2019 Modelo Booleano
15/16
• QxD1: = 2
• QxD2: = 5
• QxD3: = 0
Resultado D2,D1, ya se tiene mejor criterio de orden en función delresultado
Entonces: la Función de SIMILITUD para un Documento i en función ala consulta Q con n términos
, ∗
=1
8/17/2019 Modelo Booleano
16/16