[R-es] State-of-the-art NLP models from R
Diego Martín
@ko@@|@tem@@ @end|ng |rom gm@||@com
Mar Ago 4 17:44:50 CEST 2020
Estimados compañeros:
Bien, hecho lo dicho. Pero me temo que
no he dado más que un pequeño paso. Lo primero, muchas gracias Carlos, son
muy oportunos los comentarios que me haces, y ahora comentaré qué ha
pasado. Gracias Jorge, por intervenir; sí, hay una razón, estoy aprendiendo
Python, así que, digamos, no me hallo tan suelto con él como con R. De
todas formas, por encima de ello, la idea de base, es no dejar de saber qué
posibilidades tengo con R para avanzar en NLP o en asuntos de Geografía,
así que el post en cuestión, me pareció de gran interés. Mirad, sin
embargo, la guerra que me está danto.
Muestro esta consulta en consola que
prueba el punto de avance.
*Last login: Tue Aug 4 17:08:11 on ttys000*
. /anaconda3/bin/activate && conda activate /anaconda3/envs/r-reticulate;
python -i
MacBook-Pro-de-Diego:~ Diego$ . /anaconda3/bin/activate && conda activate
/anaconda3/envs/r-reticulate; python -i
*Python 3.8.5* | packaged by conda-forge | (default, Jul 31 2020, 02:18:36)
[Clang 10.0.1 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import transformers
To use data.metrics please install scikit-learn. See
https://scikit-learn.org/stable/index.html
Neither PyTorch nor TensorFlow >= 2.0 have been found.Models won't be
available and only tokenizers, configurationand file/data utilities can be
used.
>>>
Bueno, ahí veo que sí tengo *transformers*,
como quería, y que no tengo accesible PyTorch ni TensorFlow, pero no me
preocupa porque lo cargaré en R, que es desde donde voy a hacer la
importación.
Ya en R, pasa lo siguiente:
> library(reticulate)
> library(keras)
> library(tensorflow)
> library(dplyr)
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
> library(tfdatasets) # Interface to 'TensorFlow' Datasets
>
> transformer <- import(module = "transformers",
+ as = NULL,
+ convert = TRUE,
+ delay_load = FALSE)
Error in py_module_import(module, convert = convert) :
ModuleNotFoundError: No module named 'transformers'
Lo cual es "chispa más o menos", donde estaba antes de
arreglar todo el asunto del *environment* y las versiones. Esto me mueve a
pensar en algo más próximo al propio R, en relación a la importación. En
Anaconda-Navigator, se puede ver muy bien que está instalada la librería,
en el environment, solo me sorprende que no tiene descripción. Véase un
recorte de éste:
[image: image.png]
¡Qué cosas!. Lo que echo de menos en el post, como en
otros post, que he leído, es exponer como en un guion de cine, los pasos a
dar, aunque no quiero con esto parecer desagradecido con el autor del post,
sino llamar la atención de la variabilidad que los lectores tenemos en
nuestros ámbitos y que no convergen con lo que se expone o resulta difícil
de lograr reproducir.
Esto último que digo me lo ha motivado el intentar cargar
otros *packages* que si bien nada tienen que ver con los objetivos del
post, me ha parecido de interés para probar. Mirad que pasa en R, justo con
el contexto que tenemos descrito:
> scipy <- import(module = "scipy",
+ as = NULL,
+ convert = TRUE,
+ delay_load = FALSE
+ ) # import SciPy
> # (it will be automatically discovered
> # in "r-reticulate") ?
>
> class(scipy)
[1] "python.builtin.module" "python.builtin.object"
>
> numpy <- import(module = "numpy",
+ as = NULL,
+ convert = TRUE,
+ delay_load = FALSE)
>
> class(numpy)
[1] "python.builtin.module" "python.builtin.object"
>
>
Así que hay algo muy relacionado con *transformers* para
que esto no vaya bien. Tendría yo que saber mucho más de Python y también
de R, probablemente, para que me llegara cierta inspiración de qué es.
Muchas gracias a todos por vuestra dedicación a mis
consultas y comentarios.
Atentamente.
Diego Martín Oliva.
El lun., 3 ago. 2020 a las 21:21, Jorge I Velez (<jorgeivanvelez using gmail.com>)
escribió:
> Diego,
> Existe una razón (de peso) para no hacer este análisis directamente con
> Python?
> Saludos,
> Jorge.-
>
> El El lun, 3 de ago. de 2020 a la(s) 11:58 a. m., Diego Martín <
> ako.sistemas using gmail.com> escribió:
>
>> Estimado Carlos:
>>
>> Hago lo que me dices y creo que poniéndote el
>> resultado seré más expresivo y claro, que tratando de explicarlo.
>>
>> (r-reticulate) MacBook-Pro-de-Diego:~ Diego$ python
>> Could not find platform independent libraries <prefix>
>> Could not find platform dependent libraries <exec_prefix>
>> Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
>> Python path configuration:
>> PYTHONHOME = (not set)
>> PYTHONPATH = (not set)
>> program name = '/anaconda3/bin/python'
>> isolated = 0
>> environment = 1
>> user site = 1
>> import site = 1
>> sys._base_executable = '/anaconda3/bin/python'
>> sys.base_prefix =
>>
>> '/opt/concourse/worker/volumes/live/47090e1c-dc82-4ab8-7ab0-318c9b6b0520/volume/python_1593706456233/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol'
>> sys.base_exec_prefix =
>>
>> '/opt/concourse/worker/volumes/live/47090e1c-dc82-4ab8-7ab0-318c9b6b0520/volume/python_1593706456233/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol'
>> sys.executable = '/anaconda3/bin/python'
>> sys.prefix =
>>
>> '/opt/concourse/worker/volumes/live/47090e1c-dc82-4ab8-7ab0-318c9b6b0520/volume/python_1593706456233/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol'
>> sys.exec_prefix =
>>
>> '/opt/concourse/worker/volumes/live/47090e1c-dc82-4ab8-7ab0-318c9b6b0520/volume/python_1593706456233/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol'
>> sys.path = [
>>
>>
>> '/opt/concourse/worker/volumes/live/47090e1c-dc82-4ab8-7ab0-318c9b6b0520/volume/python_1593706456233/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/
>> *python38.zip*',
>>
>>
>> '/opt/concourse/worker/volumes/live/47090e1c-dc82-4ab8-7ab0-318c9b6b0520/volume/python_1593706456233/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/
>> *python3.8*',
>>
>>
>> '/opt/concourse/worker/volumes/live/47090e1c-dc82-4ab8-7ab0-318c9b6b0520/volume/python_1593706456233/_h_env_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehold_placehol/lib/lib-dynload',
>> ]
>> Fatal Python error: init_fs_encoding: failed to get the Python codec of
>> the
>> filesystem encoding
>> Python runtime state: core initialized
>> ModuleNotFoundError: No module named 'encodings'
>>
>> Current thread 0x00007fff72602000 (most recent call first):
>> <no Python frame>
>> (r-reticulate) MacBook-Pro-de-Diego:~ Diego$
>>
>> Obviamente no está bien creado el entorno. Además he destacado del
>> resultado las referencias python3.8 que he visto, y que no pueden hallarse
>> porque yo tengo instalado python3.6.5, aunque sabía que estábamos ya en la
>> versión 3.8, pero no me había animado a instalarla porque no sé cómo
>> hacerla y tenía muchos otros asuntos entre manos, entre ellos un estudio
>> de
>> NLP.
>>
>> Ahora, visto esto, no sé qué hacer. Creo que voy a actualizar la versión
>> de
>> python y también la de anaconda-navigator, que acabo de ver que está
>> desactualizada y, luego, voy a empezar de nuevo. Permitidme que os cuente
>> luego.
>>
>> Muchísimas gracias. Atentamente.
>>
>> Diego Martín Oliva.
>>
>> El lun., 3 ago. 2020 a las 16:08, Carlos Ortega (<
>> cof using qualityexcellence.es>)
>> escribió:
>>
>> > Hola Diego,
>> >
>> > Prueba a hacer otra cosa.
>> >
>> > - Abre una consola y activa ese environment que has creado
>> > (r-reticulate)
>> > - Y una vez activado escribe "python". Entrarás a la consola de
>> > "python".
>> > - Ahí, escribe "import transformers"
>> > - Si no te devuelve error, es que en el entorno está bien instalado
>> > esa librería y por tanto el problema es de acceso desde "R".
>> >
>> > Gracias,
>> > Carlos Ortega
>> > www.qualityexcellence.es
>> >
>> > El lun., 3 ago. 2020 a las 13:53, Diego Martín (<ako.sistemas using gmail.com
>> >)
>> > escribió:
>> >
>> >> Estimados compañeros:
>> >>
>> >> Muchísimas gracias a todos por
>> >> responderme. Especialmente a Carlos Ortega que, como siempre, me ha
>> vuelto
>> >> a enseñar el camino.
>> >>
>> >> El asunto era exactamente como
>> >> decía Carlos; habiendo yo aplicado la siguiente solución:
>> >>
>> >> library(reticulate)
>> >>
>> >> conda_create(envname = "r-reticulate",
>> >> packages = "python",
>> >> forge = TRUE,
>> >> channel = character(),
>> >> conda = "auto") # Create a new environment. No
>> >> muestro el resultado porque ha sido muy largo.
>> >> # Pero puedo resumirlo con la
>> >> siguiente función.
>> >> > conda_list()
>> >>
>> >> name
>> >> 1 anaconda3
>> >> 2 r-reticulate
>> >> 3 r-tensorflow
>> >> python
>> >> 1 /anaconda3/bin/python
>> >> 2 /anaconda3/envs/r-reticulate/bin/python
>> >> 3 /anaconda3/envs/r-tensorflow/bin/python
>> >>
>> >> py_install(
>> >> packages = c("transformers"),
>> >> envname = "r-reticulate",
>> >> method = c("conda"),
>> >> conda = "auto",
>> >> python_version = NULL,
>> >> pip = TRUE
>> >> ) # Tampoco saco el resultado porque es
>> >> igualmente largo, solo dejo la prueba
>> >> # de que fue bien.
>> >>
>> >> Solving environment: ...working... done
>> >>
>> >> Por tanto, parecería que todo está
>> resuelto,
>> >> sobre todo tras cargar las librerías de keras, tensorflow, dplyr y
>> >> tfdatasets, como indica el post citado. Sin embargo, algo no debo estar
>> >> haciendo bien, porque el siguiente paso imprescindible para seguir
>> >> entendiendo el post, el que muestro ahora, da un error.
>> >>
>> >> > transformer <- reticulate::import(module = "transformers",
>> >> + as = NULL,
>> >> + convert = TRUE,
>> >> + delay_load = FALSE)
>> >> Error in py_module_import(module, convert = convert) :
>> >> ModuleNotFoundError: No module named 'transformers'
>> >>
>> >> Había yo creído que, habiendo ido bien
>> >> py_install, con el *package* transformers, no podría decirme ahora
>> >> import, que no hay un módulo llamado 'transformers'. De hecho vi como
>> tras
>> >> acabar py_install, decía:
>> >>
>> >> Successfully built regex sacremoses
>> >>
>> >> Installing collected packages: urllib3, idna, chardet, requests,
>> >> pyparsing, six, packaging, regex, click, joblib, tqdm, sacremoses,
>> >> sentencepiece, numpy, tokenizers, filelock, *transformers*
>> >>
>> >> Successfully installed chardet-3.0.4 click-7.1.2 filelock-3.0.12
>> >> idna-2.10 joblib-0.16.0 numpy-1.19.1 packaging-20.4 pyparsing-2.4.7
>> >> regex-2020.7.14 requests-2.24.0 sacremoses-0.0.43 sentencepiece-0.1.91
>> >> six-1.15.0 tokenizers-0.8.1rc1 tqdm-4.48.1 *transformers-3.0.2*
>> >> urllib3-1.25.10
>> >>
>> >> Con lo cual, me pareció haber logrado el paso
>> de
>> >> instalación pero, está claro que no es así, porque no daría sino, el
>> error
>> >> en import de *ModuleNotFoundError*.
>> >>
>> >> Me resulta embarazoso, pero es que no lo veo.
>> >> No sé si alguno de ustedes ve lo que no hago bien.
>> >>
>> >> Muchas gracias una vez más. Atentamente.
>> >>
>> >> Diego Martín Oliva.
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> El dom., 2 ago. 2020 a las 23:00, Javier Marcuzzi (<
>> >> javier.ruben.marcuzzi using gmail.com>) escribió:
>> >>
>> >>> Estimados
>> >>>
>> >>> Una pregunta, ¿Que posibilidad hay que esté instalado todo
>> >>> correctamente, pero algo cambie en entorno de python, el cual al ser
>> >>> buscado por R esté dando problemas?
>> >>>
>> >>> Hace años que no utilizo macOS, pero se me ocurre que un programa
>> >>> coloque en entorno adecuado para él, pero al mismo tiempo este toque
>> al
>> >>> entorno requerido por R.
>> >>>
>> >>> Javier Rubén Marcuzzi
>> >>>
>> >>> El dom., 2 ago. 2020 a las 15:59, Carlos Ortega (<
>> >>> cof using qualityexcellence.es>) escribió:
>> >>>
>> >>>> Hola Diego,
>> >>>>
>> >>>> El error que obtienes no es de usar una versión específica de Python,
>> >>>> si no
>> >>>> de encontrar un "environment" específico donde hacer la instalación
>> con
>> >>>> "pip".
>> >>>> Mira aquí en la ayuda:
>> >>>>
>> >>>> https://rstudio.github.io/reticulate/articles/python_packages.html
>> >>>>
>> >>>> En la sección de "Conda" donde aparece cómo crear un entorno e
>> >>>> indicárselo
>> >>>> a R para que instale ahí tus nuevas librerías.
>> >>>>
>> >>>> Gracias,
>> >>>> Carlos Ortega
>> >>>> www.qualityexcellence.es
>> >>>>
>> >>>> El dom., 2 ago. 2020 a las 19:27, Diego Martín (<
>> ako.sistemas using gmail.com
>> >>>> >)
>> >>>> escribió:
>> >>>>
>> >>>> > Estimados compañeros:
>> >>>> >
>> >>>> > Estoy interesado en el NLP,
>> así
>> >>>> que,
>> >>>> > al hallar el post State-of-the-art NLP models from R
>> >>>> > <
>> >>>> >
>> >>>>
>> https://blogs.rstudio.com/ai/posts/2020-07-30-state-of-the-art-nlp-models-from-r/
>> >>>> > >,
>> >>>> > gracias a Carlos Ortega, me puse con ilusión a leerlo. Sin embargo,
>> >>>> tengo
>> >>>> > problemas con lo más básico, la instalación del paquete
>> >>>> *transformers*. No
>> >>>> > puedo continuar sin ello.
>> >>>> >
>> >>>> > El hecho es que me pasa lo
>> >>>> siguiente:
>> >>>> >
>> >>>> > > library(reticulate)
>> >>>> > > use_python("/usr/local/bin/python3.7")
>> >>>> > > Sys.which(c("python3.7"))
>> >>>> > python3.7
>> >>>> > "/usr/local/bin/python3.7"
>> >>>> > > py_install(packages = c("transformers"),
>> >>>> > + python_version = 'python3.7',
>> >>>> > + pip = TRUE)
>> >>>> > Error: could not find a Python environment for /usr/bin/python
>> >>>> >
>> >>>> > Vamos, que no puede encontrar
>> donde
>> >>>> está
>> >>>> > Python en mi máquina. Pero yo creía haberlo dicho con:
>> >>>> > *use_python("/usr/local/bin/python3.7")*, lo cual había comprobado
>> >>>> > accediendo a consultar en el directorio de mi máquina
>> oportunamente.
>> >>>> Lo
>> >>>> > muestro a continuación.
>> >>>> >
>> >>>> > MacBook-Pro-de-Diego:bin Diego$ pwd
>> >>>> >
>> >>>> > /usr/local/bin
>> >>>> >
>> >>>> > MacBook-Pro-de-Diego:bin Diego$ ls python*
>> >>>> >
>> >>>> > python python2.7-config python3.7m
>> >>>> >
>> >>>> > python-config python3 python3.7m-config
>> >>>> >
>> >>>> > python2 python3-config pythonw
>> >>>> >
>> >>>> > python2-config python3.7 pythonw2
>> >>>> >
>> >>>> > python2.7 python3.7-config pythonw2.7
>> >>>> >
>> >>>> > MacBook-Pro-de-Diego:bin Diego$
>> >>>> >
>> >>>> > Si pusiera python, sin
>> >>>> especificar 3.7,
>> >>>> > tampoco conseguiría más. Mirad.
>> >>>> >
>> >>>> > > use_python("/usr/local/bin/python")
>> >>>> > > Sys.which(c("python"))
>> >>>> > python
>> >>>> > "/usr/bin/python"
>> >>>> > > py_install(packages = c("transformers"),
>> >>>> > + python_version = 'python',
>> >>>> > + pip = TRUE)
>> >>>> > Error: could not find a Python environment for /usr/bin/python
>> >>>> >
>> >>>> > He mirado qué podría estar
>> >>>> pasando y
>> >>>> > como me dicen en R Interface to Python
>> >>>> > <https://rstudio.github.io/reticulate/>, tengo que especificar el
>> >>>> camino;
>> >>>> > pero eso he hecho, o al menos eso creo.
>> >>>> >
>> >>>> > Python en mi máquina está bien,
>> >>>> porque
>> >>>> > tengo Anaconda-Navigator y uso Spyder, y funciona muy bien. Es más
>> >>>> > recientemente he estado haciendo un curso usando este IDE, y no
>> tuve
>> >>>> el más
>> >>>> > mínimo problema.
>> >>>> >
>> >>>> > Por favor, ¿alguno de ustedes
>> >>>> sabe qué
>> >>>> > podría estar pasándome?, ¿qué confundo o qué me falta?.
>> >>>> >
>> >>>> > Muchísimas gracias por
>> adelantado
>> >>>> por
>> >>>> > la ayuda y paciencia que me presten.
>> >>>> >
>> >>>> > Diego Martín Oliva.
>> >>>> >
>> >>>> > [[alternative HTML version deleted]]
>> >>>> >
>> >>>> > _______________________________________________
>> >>>> > R-help-es mailing list
>> >>>> > R-help-es using r-project.org
>> >>>> > https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >>>> >
>> >>>>
>> >>>>
>> >>>> --
>> >>>> Saludos,
>> >>>> Carlos Ortega
>> >>>> www.qualityexcellence.es
>> >>>>
>> >>>> [[alternative HTML version deleted]]
>> >>>>
>> >>>> _______________________________________________
>> >>>> R-help-es mailing list
>> >>>> R-help-es using r-project.org
>> >>>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>> >>>>
>> >>>
>> >
>> > --
>> > Saludos,
>> > Carlos Ortega
>> > www.qualityexcellence.es
>> >
>>
>> [[alternative HTML version deleted]]
>>
>> _______________________________________________
>> R-help-es mailing list
>> R-help-es using r-project.org
>> https://stat.ethz.ch/mailman/listinfo/r-help-es
>>
> --
> Sent from my phone. Please excuse my brevity and misspelling.
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20200804/2afb6a59/attachment-0001.html>
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 43918 bytes
Desc: no disponible
URL: <https://stat.ethz.ch/pipermail/r-help-es/attachments/20200804/2afb6a59/attachment-0001.png>
Más información sobre la lista de distribución R-help-es