tutorial que pnl funciones espaƱol ejemplos curso python google-app-engine nlp nltk

que - Uso de Python NLTK(2.0b5) en Google App Engine



que es nltk en python (4)

He estado tratando de hacer que el NLTK (Natural Language Toolkit) funcione en el motor de aplicaciones de Google. Los pasos que seguí son:

  1. Descargue el instalador y ejecútelo (un archivo .dmg, ya que estoy usando una Mac).
  2. copie la carpeta nltk del directorio de paquetes de sitios de Python y colóquela como una subcarpeta en mi carpeta de proyectos.
  3. Cree un módulo de python en la carpeta que contiene la subcarpeta nltk y agregue la línea: from nltk.tokenize import *

Desafortunadamente, después de ejecutarlo, recibo este error (tenga en cuenta que este error se produce dentro de NLTK y lo estoy viendo para la instalación de Python en mi sistema en lugar de la que está en la subcarpeta del proyecto GAE):

<type ''exceptions.ImportError''>: No module named nltk Traceback (most recent call last): File "/base/data/home/apps/xxxx/1.335654715894946084/main.py", line 13, in <module> from lingua import reducer File "/base/data/home/apps/xxxx/1.335654715894946084/lingua/reducer.py", line 11, in <module> from nltk.tokenizer import * File "/base/data/home/apps/xxxx/1.335654715894946084/lingua/nltk/__init__.py", line 73, in <module> from internals import config_java File "/base/data/home/apps/xxxx/1.335654715894946084/lingua/nltk/internals.py", line 19, in <module> from nltk import __file__

Nota: así es como se ve el error en los registros cuando se cargan en GAE. Si lo ejecuto localmente, obtengo el mismo error (excepto que parece originarse dentro de la instancia de NLTK de mis paquetes de sitio ... así que no hay diferencia allí). Y "xxxx" significa el nombre del proyecto.

Así que en resumen:

  • ¿Es lo que estoy tratando de hacer incluso posible? ¿Funcionará NLTK incluso en el App Engine?
  • ¿Hay algo que me perdí? Es decir: ¿copiar "nltk" al proyecto GAE no es suficiente?

EDITAR: error tipográfico corregido y eliminado innecesario


El problema aquí es que nltk está intentando realizar importaciones recursivas: cuando se nltk/__init__.py , importa nltk/internals.py , que luego intenta importar nltk nuevamente. Dado que nltk está en el medio de ser importado, falla con un error (bastante inútil). Lo que sea que estén haciendo es bastante raro de todos modos, no es sorprendente, como from nltk import __file__ breaks.

Esto parece un problema con nltk en sí. ¿Funciona cuando se importa directamente desde una consola de Python? Si es así, deben estar haciendo algún tipo de engaño en la versión instalada. Sugiero preguntar a los grupos de nltk qué están haciendo y cómo solucionarlo.


NLTK, creo, hace todo lo posible por ser Python puro como una alternativa (degradación elegante) cuando no puede tener las extensiones de acelerador con código C que le gustaría. Sin embargo, uno siempre necesita moverse con sumo cuidado para inyectar audazmente un paquete tan rico (recursivamente comprimir todos los archivos .py y usar zipimport puede ser menos inestable).

Mi NLTK instalado, 0.95, creo, no tiene ntlk.tokenizer; tiene un nltk.tokenize, no R al final, pero obviamente el error más minucioso es intolerable al 100% cuando intentas decirle a una computadora exactamente qué. desea, por lo que asumo que no es un error tipográfico de su parte sino su uso de una versión completamente diferente e incompatible de NLTK, entonces, ¿QUÉ versión es la que tiene un subpaquete llamado tokenizer en lugar de tokenize?

Si encuentra que una política de tolerancia cero para los errores tipográficos de un carácter es difícil de soportar, es poco probable que las computadoras y su programación sean tolerables para usted ... ;-)


oakmad ha logrado trabajar con éxito mediante el despliegue de varios módulos NLTK en GAE. Espero que esto ayude. Pero, pero, para ser sincero, todavía no creo que sea verdad incluso después de leer el post.