modelo booleano

Upload: christian-canedo

Post on 06-Jul-2018

243 views

Category:

Documents


0 download

TRANSCRIPT

  • 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