[Cvu] nuevo programa

Enrique López-Moreno elmlvi en gmail.com
Dom Mayo 6 09:37:28 CDT 2018


Luis:

Es admirable!

Esto es lo que entiendo por la cultura científica: no importa la
dificultad, ni la propia área; es la razón y creatividad, el interés por la
soluciones, y un espíritu inquisidor por otorgar una salida a todos, . .

Si yo fuera el Director de CONACyT, no podría permanecer indiferente.

TODA MI ADMIRACIÓN!!!

2018-05-05 17:48 GMT-05:00 Luis Mochan <mochan en icf.unam.mx>:

> Les presumo mi nuevo programa.
>
> Se llama re2yaml y sirve para capturar una lista de publicaciones en
> un formato arbitrario que pueda describirse como una expresión
> regular. Por ejemplo, para capturar la lista de publicaciones que me
> envió Carlos Arias usé el comando
>
> re2yaml.pl -o carlosArias.yaml -i carlosArias.txt \
>    -f 'autores año título revista volumen páginas doi' \
>    -r  '^\d*\.\s*(.*?\s+)(\d+)[\s\.]+(.*?)\.\s+(.*?)\s+(\d+)\s*(?:\
> (\s*\d+\s*\))?:\s*(.*?)\s*(?:doi\s*:\s*(.*))?$' \
>    -a '(?:and)?(.*?,\s+.*?[,\.]+)\s+'
>
> que se ve espantoso, pero se los explico a los curiosos y pacientes:
>
> re2yaml.pl
>    es el nombre de mi programa
>
> -o carlosArias.yaml
>    indica el nombre del archivo donde dejar la información capturada
>
> -i carlosArias.txt
>    es el nombre donde puse su lista de publicaciones (convertida de un
>    .doc)
>
> -f 'autores año título revista volumen páginas doi'
>    significa que a Carlos le gusta poner primero los autores, luego el
>    año, luego el título, etc.
>
> -r '^\d*\.\s*(.*?\s+)(\d+)[\s\.]+(.*?)\.\s+(.*?)\s+(\d+)\s*(?:\
> (\s*\d+\s*\))?:\s*(.*?)\s*(?:doi\s*:\s*(.*))?$' \
>    es donde empieza la diversión. Ésta es una expresión regular que
>    define la estructura detallada de cómo escribe Carlos sus
>    publicaciones. La explicación va más abajo.
>
> -a '(?:and)?(.*?,\s+.*?[,\.]+)\s+' \
>    Esta es una expresión regular para extraer cada uno de los autores
>    de una lista de autores.
>
> Lo acabo de probar y aparentemente funciona. La dificultad es que no
> somos muy consistentes en cómo escribimos y eso lleva a
> ambigüedades. Tuve que meterle mano a la lista de Carlos para que el
> programa pudiera con ella. Me inventé las expresiones regulares para
> que funcionaran con los primeros artículos, y entonces tuve que
> modificar algunos de los últimos artículos, pues su estilo ha cambiado
> a lo largo del año. Con todo y todo, hacer el programa desde cero,
> hacer y probar las expresiones regulares y condicionar la lista de
> publicaciones me tomó arribita de 4hrs. El programa debe servir sin
> mayor modificación para las otras listas que me han enviado. Luego les
> cuento si es cierto o no.
>
> Las expresiones regulares son bastante ilegible, pero su gracia es que
> en un par de líneas puede uno capturar la esctructura de la
> lista. Sólo es necesario hallar y registrar la expresión regular que
> decriba cada
> estilo de CV y checar que el CV cumpla consistentemente con dicha
> expresión :)
>
>
> Va la explicación.
>
> Expresión regular para capturar los artículos:
>
> -r '^\d*\.\s*(.*?\s+)(\d+)[\s\.]+(.*?)\.\s+(.*?)\s+(\d+)\s*(?:\
> (\s*\d+\s*\))?:\s*(.*?)\s*(?:doi.*)?\s*$'
>
> Explicación:
> ^                 Principio
> \d*               Me salto numeración.
> \.                Me salto un punto.
> \s*               Me salto espacios.
> (.*?\s+)          Capturo autores separados por espacios
> (\d+)             hasta hallar el año, el cual capturo.
> [\s\.]+           Me salto espacios y/o puntos
> (.*?)             y capturo el título
> \.                terminado en un punto y
> \s+               seguido de espacios y
> (\d+)             del número de volumen. Este puede ir seguido de
> \s*               espacios y
> (?:\(\s*\d+\s*\)) del número entre paréntesis y con posibles espacios.
> ?                 El número es opcional
> :                 Luego siguen dos puntos,
> \s*               espacio opcional, y
> (.*?)             las páginas, que capturo. Finalmente pueden haber
> \s*               espacios adicionales
> (?:doi\s*:\s*(.*))?  y un doi opcional. Siguen
> \s*               espacios opcionales y
> $                 el final del registro
>
>
> Expresión regular para separar los autores:
>
> -a '(?:and)?(.*?,\s+.*?[,\.]+)\s+'
>
>                   Hay un
> (?:and)?          'and' opcional para el último autor.
> (                 Inicia la captura con
> .*?               el nombre
> ,                 seguido de una coma
> \s+               seguido de uno o más espacios
> .*?               seguido de lo que sea
> [,.]+             hasta hallar un punto o una coma o ambos.
> )                 Termina la captura
> \s+               y siguen espacios
>
> El orden de los campos capturados es
>
> -f 'autores año título revista volumen páginas'
>
> Si por ejemplo corro el programa sobre
>
> 127. Aponte, FE, Taboada, B, Espinoza, MA, Arias-Ortiz, MA,
> Monge-Martínez, J, Rodríguez-Vázquez, R, Díaz-Hernández, F, Zárate-Vidal,
> F, Wong-Chew, RM, Firo-Reyes, V, del Río-Almendárez, CN, Gaitán-Meza, J,
> Villaseñor-Sierra, A, Martínez-Aguilar, GM, García-Borjas, M, Noyola, DE,
> Pérez-Gónzalez, LF, López, S, Santos-Preciado, JI, Arias, CF. 2014.
> Rhinovirus is an important pathogen in upper and lower respiratory tract
> infections in Mexican children. Virology Journal. 2015, 12:31. DOI:
> 10.1186/s12985-015-0262-z.
>
> el resultado es
>
> -
>     autores:
>       - 'Aponte, FE,'
>       - 'Taboada, B,'
>       - 'Espinoza, MA,'
>       - 'Arias-Ortiz, MA,'
>       - 'Monge-Martínez, J,'
>       - 'Rodríguez-Vázquez, R,'
>       - 'Díaz-Hernández, F,'
>       - 'Zárate-Vidal, F,'
>       - 'Wong-Chew, RM,'
>       - 'Firo-Reyes, V,'
>       - 'del Río-Almendárez, CN,'
>       - 'Gaitán-Meza, J,'
>       - 'Villaseñor-Sierra, A,'
>       - 'Martínez-Aguilar, GM,'
>       - 'García-Borjas, M,'
>       - 'Noyola, DE,'
>       - 'Pérez-Gónzalez, LF,'
>       - 'López, S,'
>       - 'Santos-Preciado, JI,'
>       - 'Arias, CF.'
>     año: '2015'
>     doi: 10.1186/s12985-015-0262-z.
>     páginas: '31.'
>     revista: 'Virology Journal,'
>     título: 'Rhinovirus is an important pathogen in upper and lower
> respiratory tract infections in Mexican children'
>     volumen: '12'
> -
>
> En este formato es trivial añadirle el ISSN: 1743-422X y enviarlo a
> conacyt para que lo carguen en su CVU.
>
> Más tarde pruebo las otras listas que me enviaron.
>
>
>
>
>
>
>
> --
>
>                                                                   o
> W. Luis Mochán,                      | tel:(52)(777)329-1734     /<(*)
> Instituto de Ciencias Físicas, UNAM  | fax:(52)(777)317-5388     `>/   /\
> Apdo. Postal 48-3, 62251             |                           (*)/\/  \
> Cuernavaca, Morelos, México          | mochan en fis.unam.mx   /\_/\__/
> GPG: 791EB9EB, C949 3F81 6D9B 1191 9A16  C2DF 5F0A C52B 791E B9EB
>
>
>
> _______________________________________________
> Mensaje público enviado a la lista Cvu
> Cvu en em.fis.unam.mx
> http://em.fis.unam.mx/cgi-bin/mailman/listinfo/cvu
>



-- 
Cordialmente

Dr. Enrique López Moreno
Profesor Titular "B", T. C.
Departamento de Física
Facultad de Ciencias. UNAM
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://em.fis.unam.mx/pipermail/cvu/attachments/20180506/5ea384d4/attachment.html>


Más información sobre la lista de distribución Cvu