This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
deteccion_de_duplicados [18/08/2010 12:29] fernando |
deteccion_de_duplicados [19/08/2010 00:00] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Detección de duplicados ====== | ||
- | <note> | ||
- | Se agradece todo comentario o sugerencia que contribuya a hacer más comprensible, más usable o más eficiente el método que aquí se presenta. | ||
- | </note> | ||
- | |||
- | Si bien el procedimiento correcto para ingresar registros a una base bibliográfica requiere que el catalogador haga previamente una búsqueda, para cerciorarse de que el registro en cuestión no ha sido ya ingresado, en la práctica a veces sucede (por distracción o por un error en la forma de hacer la búsqueda) que se termina cargando dos veces lo mismo. | ||
- | |||
- | Catalis no cuenta con un mecanismo para alertar al catalogador cuando se va a grabar un registro duplicado en la base de datos, aunque tal vez no sería complicado añadirle ese tipo de validación. | ||
- | |||
- | De modo que, por la salud de nuestro catálogo, nos vemos obligados a realizar periódicamente tareas de control de calidad, que incluyan la detección de registros posiblemente duplicados. | ||
- | |||
- | A continuación se presenta un método sencillo que ayuda a detectar registros sospechosos de estar duplicados. En la forma que mostramos, el método funciona en Linux; con algunas pequeñas adaptaciones puede usarse también en Windows. | ||
- | |||
- | Guardamos las siguientes líneas en un archivo que podemos llamar ''duplic.sh'': | ||
- | |||
- | <file> | ||
- | #!/bin/bash | ||
- | |||
- | mx biblio uctab=ansi "fst=1000 0 if s(v100,v110,v111) > '' then v100^a.10,v110^a.10,v111^a.10, else '----------', fi,c11,'/',v250^a.2,'/',replace(replace(v245^a,' /',''),' :','')/" "pft=v1000^*/" now | sort > claves.txt | ||
- | mx seq=claves.txt create=claves now -all | ||
- | mx claves "pft=if v1=ref(mfn-1,v1) then v1/ fi" now > dup-sospechosos.txt | ||
- | </file> | ||
- | |||
- | Luego hacemos que el archivo sea ejecutable: | ||
- | |||
- | <code> | ||
- | $ chmod +x duplic.sh | ||
- | </code> | ||
- | |||
- | Para el uso de este script, suponemos que trabajamos sobre una copia de la base bibliográfica (archivos ''biblio.mst'' y ''biblio.xrf''), ubicados en la misma carpeta donde tenemos el archivo ''duplic.sh''. | ||
- | |||
- | Ejecutamos el script con este comando: | ||
- | |||
- | <code> | ||
- | $ ./duplic.sh | ||
- | </code> | ||
- | |||
- | En el archivo ''dup-sospechosos.txt'' encontraremos un listado de las claves asociadas a registros que podrían estar duplicados. Luego tendremos que comprobar, para cada una de esas claves, si los respectivos registros son en realidad duplicados. | ||
- | |||
- | Es de esperar que este método produzca unos cuantos falsos positivos; por otra parte, no debemos suponer que este método permita encontrar a //todos// los duplicados. Es decir, puede andar flojo [[http://en.wikipedia.org/wiki/Precision_and_recall|tanto en 'precision' como en 'recall']]... pero al menos es una ayuda para empezar a limpiar nuestros catálogos. | ||
- | |||
- | Es conveniente usar para esto el utilitario ''mx'' 16/60, que trabaja con claves grandes. Se lo puede descargar desde [[http://bvsmodelo.bvsalud.org/php/level.php?lang=es&component=28&item=1|el sitio de la BVS]]. | ||
- | |||
- | |||
- | {{tag>catalis admin}} |